nginx.conf配置文件

user  www www;
worker_processes auto; #cat /proc/cpuinfo | grep ^processor | wc -l  #查看cpu核数
worker_cpu_affinity auto;
error_log  /www/wwwlogs/nginx_error.log  crit;
pid        /www/server/nginx/logs/nginx.pid;
worker_rlimit_nofile 51200; #每个进程的最大文件打开数,所以最好与ulimit -n的值保持一致。

stream {
    log_format tcp_format '$time_local|$remote_addr|$protocol|$status|$bytes_sent|$bytes_received|$session_time|$upstream_addr|$upstream_bytes_sent|$upstream_bytes_received|$upstream_connect_time';
  
    access_log /www/wwwlogs/tcp-access.log tcp_format;
    error_log /www/wwwlogs/tcp-error.log;
    include /www/server/panel/vhost/nginx/tcp/*.conf;
}

events
    {
        use epoll;
        #表示每个worker(子进程)可以创建多少个连接,默认1024,最大是65535.
        worker_connections 51200;
        #告诉nginx收到一个新连接通知后接受尽可能多的连接,默认是on,设置为on后,多个worker按串行 方式来处理连接,也就是一个连接只有一个worker被唤醒,其他的处于休眠状态,设置为off后,多个worker按并行 方式来处理连接,也就是一个连接会唤醒所有的worker,直到连接分配完毕,没有取得连接的继续休眠。当你的服 务器连接数不多时,开启这个参数会让负载有一定的降低,但是当服务器的吞吐量很大时,为了效率,可以关闭这个参数。
        multi_accept on;
    }

http
    {
        include       mime.types;
		#include luawaf.conf;

		include proxy.conf;

        default_type  application/octet-stream;

        server_names_hash_bucket_size 512;
        #客户端请求头部的缓冲区大小,这个可以根据你的系统分页大小来设置,一般一个请求头的大小不会超过 1k,不过由于一般系统分页都要大于1k,所以这里设置为分页大小。分页大小可以用命令getconf PAGESIZE取得。
        client_header_buffer_size 4K; 
        large_client_header_buffers 4 32k;
        client_max_body_size 50m; #上传文件大小限制。
        

        #开启高效文件传输模式。
        sendfile   on;
        #需要在sendfile开启模式才有效,防止网络阻塞,级级的减少网络报文段的数量。将响应头和正文的开始部分一起发送,而不是一个接一个的发送(也就是说数据包不会马上传出等到数据包最大时一次性传)
        tcp_nopush on;

        #客户端连接保持会话超时时间,超过这个时间,服务器断开这个链接。
        keepalive_timeout 60;
        #也是防止网络阻塞,不过要包涵在keepalived参数才有效。
        tcp_nodelay on; 
        

        #这个将为打开文件指定缓存,默认是没有启用的,max指定缓存数量,建议和打开文件数一致,inactive 是指经过多长时间文件没被请求后删除缓存。
        open_file_cache max=102400 inactive=20s;
        #这个是指多长时间检查一次缓存的有效信息。
        open_file_cache_valid 30s;
        #open_file_cache指令中的inactive 参数时间内文件的最少使用次数,如果超过这个数字,文件描述符一直是在缓存中打开的,如上例,如果有一个文件在inactive 时间内一次没被使用,它将被移除。
        open_file_cache_min_uses 1;

        #设置请求头的超时时间。我们也可以把这个设置低些,如果超过这个时间没有发送任何数据,nginx将返回request time out的错误
        client_header_timeout 15;
        #设置请求体的超时时间。我们也可以把这个设置低些,超过这个时间没有发送任何数据,和上面一样的错误提示。
        client_body_timeout 15;
        #告诉nginx关闭不响应的客户端连接。这将会释放那个客户端所占有的内存空间。
        reset_timedout_connection on;
        #响应客户端超时时间,这个超时时间仅限于两个活动之间的时间,如果超过这个时间,客户端没有任何活动,nginx关闭连接。
        send_timeout 15;
        #并不会让nginx执行的速度更快,但它可以关闭在错误页面中的nginx版本数字,这样对于安全性是有好处的。
        server_tokens off;

        #指定连接到后端FastCGI的超时时间
        fastcgi_connect_timeout 300;
        #向FastCGI传送请求的超时时间。
        fastcgi_send_timeout 300;
        #指定接收FastCGI应答的超时时间
        fastcgi_read_timeout 300;
        #指定读取FastCGI应答第一部分需要用多大的缓冲区,默认的缓冲区大小为。fastcgi_buffers指令中的每块大小,可以将这个值设置更小。
        fastcgi_buffer_size 64k;
        #指定本地需要用多少和多大的缓冲区来缓冲FastCGI的应答请求,如果一个php脚本所产生的页面大小为256KB,那么会分配4个64KB的缓冲区来缓存,如果页面大小大于256KB,那么大于256KB的部分会缓存到
        fastcgi_buffers 4 64k;

        fastcgi_busy_buffers_size 128k;
        fastcgi_temp_file_write_size 256k;
        #这个指令指定是否传递4xx和5xx错误信息到客户端,或者允许nginx使用error_page处理错误信息。注:静态文件不存在会返回404页面,但是php页面则返回空白页!
		fastcgi_intercept_errors on;

        gzip on;
        gzip_min_length  1k;
        gzip_buffers     4 16k;
        gzip_http_version 1.1;
        gzip_comp_level 2;
        gzip_types text/xml application/xml application/atom+xml application/rss+xml application/xhtml+xml image/svg+xml
                text/javascript application/javascript application/x-javascript
                text/x-json application/json application/x-web-app-manifest+json
                text/css text/plain text/x-component
                font/opentype application/x-font-ttf application/vnd.ms-fontobject
                image/x-icon;
        gzip_vary on;
        gzip_proxied   expired no-cache no-store private auth;
        gzip_disable  "msie6";

        
        #限制用户连接数来预防DOS攻击
        limit_conn_zone $binary_remote_addr zone=perip:10m;
		limit_conn_zone $server_name zone=perserver:10m;
        #限制同一客户端ip最大并发连接数
        limit_conn perip 2;
        #限制同一server最大并发连接数
        limit_conn perserver 20;
        #限制下载速度,根据自身服务器带宽配置
        limit_rate 300k; 

        access_log off;

server
    {
        listen 888;
        server_name phpmyadmin;
        index index.html index.htm index.php;
        root  /www/server/phpmyadmin;
            location ~ /tmp/ {
                return 403;
            }

        #error_page   404   /404.html;
        include enable-php.conf;

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }

        location ~ .*\.(js|css)?$
        {
            expires      12h;
        }

        location ~ /\.
        {
            deny all;
        }

        access_log  /www/wwwlogs/access.log;
    }
include /www/server/panel/vhost/nginx/*.conf;
}

  

posted @ 2023-01-12 18:44  Abner3721  阅读(30)  评论(0编辑  收藏  举报