nginx的配置

以下是关于nginx的各种配置(主要是可能需要修改的部分)。由于这是我很久之前的备忘录,所以可能有点过时。

# vim /etc/nginx/nginx.conf

用户

运行nginx进程的用户。

user  nginx;

工作进程

如果您使用Nginx作为Web服务器,设置服务器核心数是个不错的选择。如果您希望保留一些资源,您可以考虑设置服务器核心数减1。

worker_processes  3;

工人连接

每个进程的最大连接数。另外可指定使用 epoll。根据Linux2.6版本开始,epoll被推荐使用。

events {
    worker_connections  1024;
    use epoll;
}

客户端最大请求体大小

nginx可以接收的最大POST大小(未设置为1MB)
通常1MB是足够的,但例如在作为Git服务器时,需对其进行设置以接受大量提交文件。
#建议同时设置client_body_buffer_size。

http {
    client_max_body_size     100m;
    client_body_buffer_size  256k;
}

TCP 无推送

是否合并发送响应头和文件内容?开启此选项可以减少数据包数量。

http {
    tcp_nopush  on;
}

保持连接超时时间

这是保持连接的超时时间。

http {
    keepalive_timeout  120;
}

其他各种各样的东西

内容的gzip压缩设置,反向代理设置等等。抱歉,我的解释可能不太准确。m(_ _)m

http {
    gzip on;
    gzip_comp_level 1;
    gzip_disable "MSIE [1-6]\.";
    gzip_http_version 1.0;
    gzip_buffers 4 8k;
    gzip_min_length 1024;
    gzip_proxied any;
    gzip_vary on;
    gzip_types text/plain
               text/xml
               text/css
               text/javascript
               application/xml
               application/xhtml+xml
               application/rss+xml
               application/atom_xml
               application/javascript
               application/x-javascript
               application/x-httpd-php;

    proxy_buffering     on;
    proxy_buffer_size   64k;
    proxy_buffers       16 64k;
    proxy_cache_path    /var/cache/nginx/proxy_temp levels=1:2
                        keys_zone=czone:15m max_size=512m inactive=7d;
    proxy_temp_path     /var/tmp/nginx 1 2;
    proxy_cache_valid   200 302 2h;
    proxy_cache_valid   301     4h;
    proxy_cache_valid   any     1m;
    proxy_cache_use_stale  error timeout invalid_header updating
                           http_500 http_502 http_503 http_504;
}

另外,确认/var/cache/nginx/proxy_temp等路径是否存在,并检查写入权限等。如果不存在,则创建。修改设置后,请检查配置文件并重新启动。

# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
# service nginx restart