Nginx常用配置

发布时间:2023-11-08 11:00

Nginx配置

注:待续。。。

  • 全局配置(常用)

    # 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;
    

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号