Nginx配置文件


user www www;                               #定义nginx运行的用户和用户组

worker_processes auto;                    #nginx进程数,建议设置为CPU总核心数,也可以根据服务器性能,设置auto

error_log /var/log/nginx/error.log info;        #全局错误日志定义类型,crit 记录内容最少,degug记录内容最多,默认crit  [ debug | info | notice | warn | error | crit ]

pid /var/run/nginx.pid;                               #PID文件,记录当前启动的Nginx进程ID

worker_rlimit_nofile 65535;                         #单个nginx进程打开的最多文件描述符数目


#工作模式与连接数上限

events {

    use epoll;                             #事件驱动模型的选择, use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]等

    worker_connections 131072;   #单个worker process进程的最大并发连接数(最大连接数=连接数*进程数)

}


#设定HTTP服务器,利用它的反向代理功能提供负载均衡支持

http {

    include 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"';


    charset utf-8;                                    #编码格式

    server_names_hash_bucket_size 128;    #服务器名字的hash表大小

    client_header_buffer_size 32k;             #客户端请求头部的缓冲区大小

    large_client_header_buffers 4 64k;       #客户请求头缓冲大小

    keepalive_timeout 60;                         #连接超时时间

    

    sendfile on;          #开启高效文件传输模式

    tcp_nopush on;     #待数据包装满数据发出,解决网络拥塞,配合sendfile使用

    tcp_nodelay on;    #收到数据包就发出


    # 作为文件服务器下载使用,开启目录列表访问

    autoindex on;                   #显示目录

    autoindex_exact_size on;   #显示文件大小

    autoindex_localtime on;     #显示文件时间

    

    # FastCGI相关参数是为了改善网站的性能:减少资源占用,提高访问速度

    fastcgi_connect_timeout 300;    #nginx服务器和后端fasstcgi服务器连接的超时时间

    fastcgi_send_timeout 300;        #nginx允许fastcgi服务器返回数据的超时时间,在规定时间内后端服务器必须传完所有数据,否则nginx断开连接

    fastcgi_read_timeout 300;        #nginx从fastcgi服务器读取响应信息的超时时间,表示连接建立成功后,nginx等待后端服务器的响应时间

    fastcgi_buffer_size 64k;           #nginx fastcgi的缓冲区大小,用来读取从fastcgi服务器收到的第一部分响应信息的缓冲区大小

    fastcgi_buffers 4 64k;             #设定用来读取从fastcgi服务器收到的响应信息的缓冲区大小和缓冲区数量

    fastcgi_busy_buffers_size 128k;        #用于设置系统繁忙时可以使用的 proxy_buffers大小

    fastcgi_temp_file_write_size 128k;     #fastcgi临时文件的大小

    

    upstream bj_backend_server {

        #weight 参数代表权重值,权重值越高被分配的几率越大

        server 172.17.0.15:80    weight=5;

        server 172.17.0.16:80    weight=3;

        server 172.17.0.17:80    weight=2;        

    }

    #HTTP服务器

    server  {

        listen   80;                                  #监听端口

        server_name    www.acj.com;          #定义域名www.acj.com访问


        #如果https访问,需要配置证书,server部分配置不同        

        ssl_certificate      cert.pem;       #ssl 证书文件位置(常见证书文件格式为:crt/pem)

        ssl_certificate_key  cert.key;       #ssl 证书 key 位置                

        #ssl 配置参数(选择性配置)

        ssl_session_cache    shared:SSL:1m;

        ssl_session_timeout  5m;


        #数字签名,此处使用 MD5

        ssl_ciphers  HIGH:!aNULL:!MD5;

        ssl_prefer_server_ciphers  on;


        #对所有请求进行负载均衡请求

        location /  {

            root      /data/app;                                 #定义网站根目录位置

            index    index.html index.htm;                   #定义首页索引文件名称

            proxy_pass    http://bj_backend_server;    #请求转向bj_backend_server 定义服务器列表

            proxy_set_header Host $Host;

            proxy_set_header X-Real-IP $remote_addr;

            proxy_set_header X-Forwarded-For $remote_addr;

            #后端web服务器可以通过X-Forwarded-For获取用户真是IP

            proxy_connect_timeout 90;            #nginx跟后端服务器连接超时时间(代理连接超时)

            proxy_send_timeout 90;                #后端服务器数据回传时间(代理发送超时)

            proxy_read_timeout 90;                #连接成功后,后端服务器响应时间(代理接受超时)

            proxy_buffer_size 4k;                   #设置代理服务器(nginx)保存用户头信息的缓冲区大小

            proxy_buffers 3 32k;                   #proxy_buffers缓冲区

            proxy_busy_buffer_size 64k;        #高负荷下缓冲区大小(proxy_buffers*2)

            proxy_temp_file_write_size 64k;   #设定缓存文件夹大小,大于这个值将从upstream服务器传

            client_max_body_size 10m;          #允许客户端请求的最大文件字节数

            client_body_buffer_size 128k;       #缓冲区代理缓冲用户端请求的最大字节数

        }

    }

}


常用的命令如下:

nginx -s stop               快速关闭nginx,不能不保存相关信息,迅速终止web服务

nginx -s queit              平稳关闭nginx,保存相关信息,平稳退出web服务

nginx -s reload            修改nginx配置文件,重新加载

nginx -s reopen           重新打开日志文件

nginx - c filename        为nginx指定配置文件

nginx -t                      检测配置文件语法正确性

nginx -v                      显示nginx版本

nginx -V                     显示nginx版本,编译器版本和配置参数