nginx.conf
组成
-
main块 配置错误日志、进程及权限等信息
设置worker进程的归属 用户 用户组
#user nobody;
指定worker进程的数量
worker_processes 1;
错误日志路径 后面是日志级别 debug info notice warn error crit
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;指定master进程编号存储的位置
#pid logs/nginx.pid;
-
events块 用于配置IO模型,比如epoll,kquque,select
events {
设置网络IO模型
use epoll;
单个worker进程最大连接数
worker_connections 1024;
}
-
http块 用于控制Nginx的http进程
-
邮件模块
-
第三方模块
注意
- 每行配置的结尾需要加上分号
- 如果配置项值中包含语法符号,如空格,那么需要使用单引号或双引号括住配置项,否则Nginx会报语法错误
- 使用#来注释
- 单位简写
- K或k千字节(KiloByte,KB)
- M或者m兆字节(MegaByte,MB)
- ms(毫秒),s(秒),m(分钟),h(小时),d(天),w(周,包含7天),M(月,包含30天),y(年,包含365天)
配置文件优化
# 设置worker进程的归属 用户 用户组
#user root root;
# 指定worker进程的数量
worker_processes 1;
# 默认没有开启CPU多核配置,表示开始多核处理,01表示第一个cpu,10表示第二个CPU
worker_cpu_affinity 01 10;
# 错误日志路径 后面是日志级别 debug info notice warn error crit
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
# 指定master进程编号存储的位置
#pid logs/nginx.pid;
events {
# 设置网络IO模型 liunx->epoll kqueue[unix衍生系统]
use epoll;
# 单个worker进程最大连接数
worker_connections 20480;
# 最大处理的文件数
worker_rlimit_nofile 20480;
# 互斥锁 on|off
accpet_mutex off;
}
http {
#全局配置
# 处理方式
include /etc/nginx/mime.types;
# 默认媒体类型
default_type application/octet-stream;
#日志格式
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
# 开启高效的传输方式
sendfile on;
#tcp_nopush on;
# 连接超时时间
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
# 导入配置文件
#include extra/*.conf;
server {
listen 80;
server_name yhsblog.cn;
access_log off;
error_log off;
location / {
proxy_pass http://yhsblog; # 选择对应的负载均衡
proxy_read_timeout 60; # 与后端处理机timeout时间一致;该指令设置与代理服务器的读超时时间。它决定了ngixn会等待多长时间来获取请求的响应。
proxy_connect_timeout 60; # 该指定设置与upstream server的连接超时时间,有必要记住这个时间不能超过75秒
proxy_send_timeout 60;# 这个指定设置了发送请求给upstream服务器的超时时间。超时设置不是为了整个发送期间,而是在两次write操作期间。如果发生超时,upstream没有收到新的数据,nginx会关闭连接。
}
}
}