安装完Nginx,输入 nginx -V
看看你的Nginx是怎么编译来的 :-P
环境
- Ubuntu 18.04
- Nginx 1.14.0
Nginx的优势
IO多路复用
何为I/O复用见下图
而多路I/O复用是指多个描述I/O的操作能在一个线程内交替完成,复用的是指同一个线程,使用epoll的方式,采用回调函数,最大连接无限制
轻量级
- 功能模块少
- 代码模块化
CPU亲和
把CPU核心和Nginx工作进程绑定,将每个worker进程固定在一个CPU上执行,减少切换CPU的cache miss
sendfile机制
处理静态文件有优势
重要目录
- /etc/logrotate.d/nginx 配置日志相关信息,Nginx日志轮转,用于logrotate服务的日志切割
- /etc/nginx 主配置存放目录
- /etc/nginx/nginx.conf 主要配置文件
- /etc/nginx/conf.d 次要配置目录
- /etc/nginx/sites-enabled 次要配置目录
注意,以上两条路径可以在配置文件/etc/nginx/nginx.conf中查看到
1 | include /etc/nginx/conf.d/*.conf; |
- /etc/nginx/fastcgi_params
- /etc/nginx/uwsgi_params
- /etc/nginx/scgi_params
以上三个和cgi相关(Common gateway interface)
- /etc/nginx/koi-utf
- /etc/nginx/koi-win
- /etc/nginx/win-utf
以上三个为编码转换映射转化文
- /etc/nginx/mime.types 设置Content-Type与扩展名对应关系
- /usr/lib64/nginx/modules 相关模块
- /var/cache/nginx 缓存相关
- /var/log/nginx 日志相关
配置语法
以下参数基本都在文件/etc/nginx/nginx.conf中那出现
- user 设置nginx服务系统使用用户
- worker_processes 工作进程数
- error_log 错误日志
- pid nginx启动时的pid
- even
- worker_connections 每个进程最大允许连接数,重要,需要人工调节,1万左右
- use 工作进程数
- include /etc/nginx/conf.d/*.conf; 载入的配置
- include /etc/nginx/sites-enabled/*; 载入的配置
这里,log_format
可以对日志输出的格式进行配置,这里设置了相应日志(access_log)的输出格式,当然,错误日志(error_log)日志的格式也可以设置
1 | log_format main '$http_user_agent' '$remote_addr - $remote_user [$time_local] ' '"$request" |
这里用到了Nginx的变量,都是以 $
开头的,参看链接