搞懂nginx 这一篇就够了( 三 )

nginx 服务器基础配置指令nginx.conf 文件的结构

  • Global: nginx 运行相关
  • events: 与用户的网络连接相关
  • http
  • http Global: 代理 , 缓存 , 日志 , 以及第三方模块的配置
  • server
  • server Global: 虚拟主机相关
  • location: 地址定向 , 数据缓存 , 应答控制 , 以及第三方模块的配置
所有的所有的所有的指令 , 都要以;结尾
nginx 运行相关的 Global 部分
配置运行 nginx 服务器用户
user nobody nobody;
配置允许生成的 worker process 数
worker_processes auto; worker_processes 4;
这个数字 , 跟电脑 CPU 核数要保持一致
# grep ^proces /proc/cpuinfoprocessor : 0processor : 1processor : 2processor : 3# grep ^proces /proc/cpuinfo | wc -l4复制代码配置 nginx 进程 PID 存放路径
pid logs/nginx.pid;
【搞懂nginx 这一篇就够了】这里面保存的就是一个数字 , nginx master 进程的进程号
配置错误日志的存放路径
error_log logs/error.log; error_log logs/error.log error;
配置文件的引入
include mime.types; include fastcgi_params; include ../../conf/*.conf;
与用户的网络连接相关的 events
设置网络连接的序列化
accept_mutex on;
对多个 nginx 进程接收连接进行序列化 , 防止多个进程对连接的争抢(惊群)
设置是否允许同时接收多个网络连接
multi_accept off;
事件驱动模型的选择
use select|poll|kqueue|epoll|rtsig|/dev/poll|eventport
这个重点 , 后面再看
配置最大连接数
worker_connections 512;
http
http Global 代理 - 缓存 - 日志 - 第三方模块配置
定义 MIME-Type
include mime.types; default_type application/octet-stream;
自定义服务日志
access_log logs/access.log main; access_log off;
配置允许 sendfile 方式传输文件
sendfile off;
sendfile on; sendfile_max_chunk 128k;
nginx 每个 worker process 每次调用 sendfile() 传输的数据量的最大值
Refer:
  • Linux kenel sendfile 如何提升性能
  • nginx sendifle tcp_nopush tcp_nodelay 参数解释
配置连接超时时间
与用户建立连接后 , nginx 可以保持这些连接一段时间 , 默认 75s 下面的 65s 可以被 Mozilla/Konqueror 识别 , 是发给用户端的头部信息Keep-Alive值
keepalive_timeout 75s 65s;
单连接请求数上限
和用户端建立连接后 , 用户通过此连接发送请求;这条指令用于设置请求的上限数
keepalive_requests 100;
server
配置网络监听
listen *:80 | *:8000; # 监听所有的 80 和 8000 端口
listen 192.168.1.10:8000; listen 192.168.1.10; listen 8000; # 等同于 listen *:8000; listen 192.168.1.10 default_server backlog=511; # 该 ip 的连接请求默认由此虚拟主机处理;最多允许 1024 个网络连接同时处于挂起状态
基于名称的虚拟主机配置
server_name myserver.com www.myserver.com;
server_name 


推荐阅读