nginx:配置详细说明

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx:配置详细说明相关的知识,希望对你有一定的参考价值。

一、fastcgi param 详情:

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;#脚本文件请求的路径  
fastcgi_param  QUERY_STRING       $query_string; #请求的参数;如?app=123  
fastcgi_param  REQUEST_METHOD     $request_method; #请求的动作(GET,POST)  
fastcgi_param  CONTENT_TYPE       $content_type; #请求头中的Content-Type字段  
fastcgi_param  CONTENT_LENGTH     $content_length; #请求头中的Content-length字段。  
  
fastcgi_param  SCRIPT_NAME        $fastcgi_script_name; #脚本名称   
fastcgi_param  REQUEST_URI        $request_uri; #请求的地址不带参数  
fastcgi_param  DOCUMENT_URI       $document_uri; #与$uri相同。   
fastcgi_param  DOCUMENT_ROOT      $document_root; #网站的根目录。在server配置中root指令中指定的值   
fastcgi_param  SERVER_PROTOCOL    $server_protocol; #请求使用的协议,通常是HTTP/1.0或HTTP/1.1。    
  
fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;#cgi 版本  
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;#nginx 版本号,可修改、隐藏  
  
fastcgi_param  REMOTE_ADDR        $remote_addr; #客户端IP  
fastcgi_param  REMOTE_PORT        $remote_port; #客户端端口  
fastcgi_param  SERVER_ADDR        $server_addr; #服务器IP地址  
fastcgi_param  SERVER_PORT        $server_port; #服务器端口  
fastcgi_param  SERVER_NAME        $server_name; #服务器名,域名在server配置中指定的server_name  
  
#fastcgi_param  PATH_INFO           $path_info;#可自定义变量  
  
# php only, required if PHP was built with --enable-force-cgi-redirect  
#fastcgi_param  REDIRECT_STATUS    200; 

二、nginx的配置文件

  先上一份本人的nginx.conf吧!

user root root;
worker_processes auto;
error_log /usr/local/nginx/logs/nginx_error.log crit;

pid /usr/local/nginx/logs/nginx.pid;
worker_rlimit_nofile 51200;

events
{
    use epoll;
    worker_connections 6000;
}

http
{
    include mime.types;
    default_type application/octet-stream;
    server_names_hash_bucket_size 3526;
    server_names_hash_max_size 4096;

    log_format combined_realip ‘$remote_addr $http_x_forwarded_for [$time_local]‘
                               ‘$host "$request_uri" $status‘
                               ‘"$http_referer" "$http_user_agent"‘;
    sendfile on;
    tcp_nopush on;
    keepalive_timeout 30;
    client_header_timeout 3m;
    client_body_timeout 3m;
    send_timeout 3m;
    connection_pool_size 256;
    client_header_buffer_size 1k;
    large_client_header_buffers 8 4k;
    request_pool_size 4k;
    output_buffers 4 32k;
    postpone_output 1460;

    client_max_body_size 10m;
    client_body_buffer_size 256k;
    client_body_temp_path /usr/local/nginx/client_body_temp;

    proxy_temp_path /usr/local/nginx/proxy_temp;
    fastcgi_temp_path /usr/local/nginx/fastcgi_temp;
    fastcgi_intercept_errors on;
    tcp_nodelay on;

    gzip on;
    gzip_min_length 1k;
    gzip_buffers 4 8k;
    gzip_comp_level 5;
    gzip_http_version 1.1;
    gzip_types text/plain application/x-javascript text/css text/htm application/xml;

    server {
       listen 80;
       server_name localhost;
       index index.html index.htm index.php;
       root /usr/local/nginx/html;

       location ~ \.php$ {
           include fastcgi_params;
           fastcgi_pass unix:/tmp/php-fcgi.sock;
           fastcgi_index index.php;
           fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       }

    }

    include vhost/*.conf;
}

 2.1>.配置说明(其中一部分):

user root root;#nginx启动时的默认用户(也就是以什么身份启动nginx)
worker_processes auto;#启动进程,通常设置成和cpu的数量相等。相当于cpu个数(也可设置成auto,让系统自己去检测)
error_log /usr/local/nginx/logs/nginx_error.log crit;#错误日志

pid /usr/local/nginx/logs/nginx.pid;#主进程pid保存文件
worker_rlimit_nofile 51200;#文件描述符数量

#工作模式及连接数上限
events
{
    use epoll;#epoll是多路复用IO(I/O Multiplexing)中的一种方式,但是仅用于linux2.6以上内核,可以大大提高nginx的性能
    worker_connections 6000;#单个后台worker process进程的最大并发链接数
    #multi_accept on;#暂时不详
}

#设定http服务器,利用它的反向代理功能提供负载均衡支持
http
{
    include mime.types;#设定mime类型,类型由mime.type文件定义
    default_type application/octet-stream;

    server_names_hash_bucket_size 3526;#保存服务器名字的hash表大小
    server_names_hash_max_size 4096;

    #定义日志格式
    log_format combined_realip ‘$remote_addr $http_x_forwarded_for [$time_local]‘
                               ‘$host "$request_uri" $status‘
                               ‘"$http_referer" "$http_user_agent"‘;

    sendfile on;#sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文         件,对于普通应用,必须设为 on。如果用来进行下载等应用磁盘IO重负载应用,可       设置为off,以平衡磁盘与网络I/O处理速度,降低系统的uptime

    tcp_nopush on;#这个是默认的,结果就是数据包不会马上传送出去,等到数据包最大时,一次性的         传输出去,这样有助于解决网络堵塞。(只在sendfile on时有效)

    keepalive_timeout 30;#连接超时时间
    client_header_timeout 3m;
    client_body_timeout 3m;
    send_timeout 3m;
    connection_pool_size 256;
    client_header_buffer_size 1k;
    large_client_header_buffers 8 4k;
    request_pool_size 4k;
    output_buffers 4 32k;
    postpone_output 1460;

    client_max_body_size 10m;
    client_body_buffer_size 256k;
    client_body_temp_path /usr/local/nginx/client_body_temp;

    proxy_temp_path /usr/local/nginx/proxy_temp;
    fastcgi_temp_path /usr/local/nginx/fastcgi_temp;
    fastcgi_intercept_errors on;
    tcp_nodelay on;#禁用nagle算法,也即不缓存数据。

    #开启gzip网络压缩
    gzip on;
    gzip_min_length 1k;
    gzip_buffers 4 8k;
    gzip_comp_level 5;
    gzip_http_version 1.1;
    gzip_types text/plain application/x-javascript text/css text/htm application/xml;
    gzip_vary on;
    gzip_proxied  expired no-cache no-store private auth;
    gzip_disable  "MSIE [1-6]\.";

    server {
       listen 80;#端口
       server_name localhost;#服务器名称(域名、ip)
       index index.html index.htm index.php;#网页索引文件
       root /usr/local/nginx/html;#网页路径

       #PHP 脚本请求全部转发到 FastCGI处理. 使用FastCGI默认配置.
       location ~ \.php$ {
           include fastcgi_params;
           fastcgi_pass unix:/tmp/php-fcgi.sock;#指定FastCGI服务器监听端口与地址。这里使用unix socket
            #nginx以unix-domain-socket方式连接fastcgi(php)。更快,适合大流量访问
            #另外一种 nginx连接fastcgi的方式是http方式的[ 127.0.0.1:9000  方式连接 fastcgi(php)

           fastcgi_index index.php;#默认网页文件
           fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;#脚本访问路径
       }

    }

    include vhost/*.conf;#引入不同虚拟主机的配置
}

  待续........................

  

 

 

以上是关于nginx:配置详细说明的主要内容,如果未能解决你的问题,请参考以下文章

Nginx配置文件详细说明

nginx:配置详细说明

Nginx配置文件详细说明

nginx中配置sendfile及详细说明

Nginx配置文件详细说明

Nginx配置文件nginx.conf详细说明文档