发布时间:2023-11-08 11:00
注:待续。。。
全局配置(常用)
# nginx工作进程执行的用户和用户组
user www www;
# 工作进程的数量 auto根据CPU核数设置,例如CPU核数是1,worker_processes(工作进程数)是1
worker_processes auto;
# Nginx错误日志目录和错误日志记录的类型(级别)debug, info, notice, warn, error, crit, alert, 或emerg
error_log /var/log/nginx/error.log notice;
# Nginx主进程的进程ID,pid存放位置
pid /var/run/nginx.pid;
# 引入配置文件
include file;
# 设置 nginx 是否应该成为守护进程。主要在开发过程中使用
daemon on | off;
# 加载动态模块
load_module file;
# 是否启动工作进程。该指令适用于 nginx 开发人员
master_process on | off;
events事件模块
# 工作进程可以同时打开的最大连接数
worker_connections 1024;
# 工作进程是否依次接收新的请求(网络连接的序列化) on开启,off关闭(一般默认不设置)
accept_mutex on | off;
# 执行使用的连接模型,select epoll等(默认是spoll)
use epoll;
http模块
# 文件扩展名与文件类型映射表
include /etc/nginx/mime.types;
# 定义响应的默认 MIME 类型
default_type application/octet-stream;
# 定义日志的格式。可以选择main或者ltsv,后面定义要输出的内容
# $remote_addr 与$http_x_forwarded_for 用以记录客户端的ip地址
# $remote_user:用来记录客户端用户名称
# $time_local:用来记录访问时间与时区
# $request:用来记录请求的url与http协议
# $status:用来记录请求状态
# $body_bytes_sent:记录发送给客户端文件主体内容大小
# $http_referer :用来记录从那个页面链接访问过来的
# $http_user_agent :记录客户端浏览器的相关信息
log_format main \'$remote_addr - $remote_user [$time_local] \"$request\" \'
\'$status $body_bytes_sent \"$http_referer\" \'
\'\"$http_user_agent\" \"$http_x_forwarded_for\"\';
# Nginx请求日志
access_log /var/log/nginx/access.log main;
# 指定是否使用OS的sendfile函数来传输文件
sendfile on;
# sendfile为on时这里也应该设为on,数据包会累积一下再一起传输,可以提高一些传输效率
tcp_nopush on;
# 小的数据包不等待直接传输。默认为on
tcp_nodelay on;
# HTTP连接的超时时间,默认75秒 可选参数[header_timeout]
keepalive_timeout 65;
# 设置可以通过一个保持活动连接提供服务的最大请求数。在发出最大数量的请求后,将关闭连接。
keepalive_requests 1000;
# 设置类型哈希表的最大值size
types_hash_max_size 2048;
# 客户端请求正文的最大允许大小
client_max_body_size 100m;
# 读取客户端请求head部分的超时时间,默认60
client_header_timeout 10;
# 读取客户端请求主体的超时时间,默认秒,默认60
client_body_timeout 10;
# 设置读取客户端请求正文的缓冲区大小。如果请求正文大于缓冲区,则将整个正文或仅其部分写入临时文件
client_body_buffer_size 8k|16k;
# 设置读取客户端请求标头的缓冲区大小
client_header_buffer_size 1k;
# 响应客户端的超时时间 默认秒 默认60秒
send_timeout 25;
# 定义将针对指定错误显示的 URI。一个uri值可以包含变量。
error_page 404 /404.html;
# 禁用与指定的浏览器的保持连接;该值safari在 macOS 和类似 macOS 的操作系统上禁用与 Safari 和类似 Safari 的浏览器的保持连接
keepalive_disable none | browser ...;
# 设置除了指定的http methods外其他method将被限制,允许GET就自动允许HEAD方法
limit_except get ...;
# 指定每秒该连接能下载的bytes,主要用来限制个别请求的带宽
limit_rate 0;
# 设置初始量,在此之后向客户端的响应的进一步传输将受到速率限制
limit_rate_after 500k;
# gzip on;
# 引入server模块
include /etc/nginx/conf.d/*.conf;
Server模块
# 设置监听IP地址和端口
listen 80 default_server;
listen [::]:80 default_server;
# 设置虚拟服务器的名称(域名);例如:server_name example.com www.example.com;
server_name _;
# 设置请求的根目录
root /usr/share/nginx/html;
# 客户端请求正文的最大允许大小
client_max_body_size 100m;
# 读取客户端请求head部分的超时时间,默认60
client_header_timeout 10;
# 读取客户端请求主体的超时时间,默认秒,默认60
client_body_timeout 10;
# 设置读取客户端请求正文的缓冲区大小。如果请求正文大于缓冲区,则将整个正文或仅其部分写入临时文件
client_body_buffer_size 8k|16k;
# 设置读取客户端请求标头的缓冲区大小
client_header_buffer_size 1k;
location / {
}
# 定义将针对指定错误显示的 URI。一个uri值可以包含变量。
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
fastcgi模块
# 指定nginx读取fastcgi响应第一部分需要用多大的缓冲区
fastcgi_buffer_size 4k|8k;
# 指nginx需要用多大的缓冲区缓冲fastcgi的应答请求(整个应答),超过指定大小会缓存到fastcgi_temp指定的路径中
fastcgi_buffers 8 4k|8k;
# 定义与 FastCGI 服务器建立连接的超时时间。需要注意的是,这个超时时间通常不能超过 75 秒
fastcgi_connect_timeout 60s;
# 设置将请求传输到 FastCGI 服务器的超时时间
fastcgi_send_timeout 60s;
# 定义从 FastCGI 服务器读取响应的超时时间
fastcgi_read_timeout 60s;
# 定义捕获$fastcgi_path_info变量值的正则表达式。
# 正则表达式应该有两个捕获:第一个成为$fastcgi_script_name变量的值,第二个成为$fastcgi_path_info变量的值
fastcgi_split_path_info ^(.+\\.php)(/.+)$;
# 设置 FastCGI 服务器的地址。地址可以指定为域名或IP地址,以及端口
fastcgi_pass unix:/dev/shm/fpm7.4-cgi.sock;
# $fastcgi_script_name在变量 的值中设置一个文件名,该文件名将附加在以斜杠结尾的 URI 之后
fastcgi_index index.php;
# 设置一个parameter应该传递给 FastCGI 服务器的值
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;