Nginx配置文件詳解


#工作進程數,建議設置為CPU的總核數
worker_processes  16;

#全局錯誤日志定義類型,日志等級從低到高依次為:
#debug | info | notice | warn | error | crit
error_log  logs/error.log  info;

#記錄主進程ID的文件
pid        /nginx-1.13.7/nginx.pid;

#一個進程能打開的文件描述符最大值,理論上該值因該是最多能打開的文件數除以進程數。
#但是由於nginx負載並不是完全均衡的,所以這個值最好等於最多能打開的文件數。
#LINUX系統可以執行 sysctl -a | grep fs.file 可以看到linux文件描述符。
worker_rlimit_nofile 65535;

#連接數上限,單個進程允許的最大連接數
events {   
    worker_connections  65535;
}

#設定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"';

    #access log 記錄了哪些用戶,哪些頁面以及用戶瀏覽器、ip和其他的訪問信息
    access_log  logs/access.log  main;
	
    #服務器名字的hash表大小
    server_names_hash_bucket_size 128;
	
    #客戶端請求頭緩沖大小。
    #nginx默認會用client_header_buffer_size這個buffer來讀取header值,
    #如果header過大,它會使用large_client_header_buffers來讀取。
    #如果設置過小HTTP頭/Cookie過大 會報400 錯誤 nginx 400 bad request
    #如果超過buffer,就會報HTTP 414錯誤(URI Too Long)
    #nginx接受最長的HTTP頭部大小必須比其中一個buffer大
    #否則就會報400的HTTP錯誤(Bad Request)
    client_header_buffer_size 32k;
    large_client_header_buffers 4 32k;

    #客戶端請求體的大小
    client_body_buffer_size    8m;

    #隱藏ngnix版本號
    server_tokens off;

    #忽略不合法的請求頭
    ignore_invalid_headers   on;

    #指定啟用除第一條error_page指令以外其他的error_page。
    recursive_error_pages    on;

    #讓 nginx 在處理自己內部重定向時不默認使用  server_name 設置中的第一個域名
    server_name_in_redirect off;

    #開啟文件傳輸,一般應用都應設置為on;若是有下載的應用,則可以設置成off來平衡網絡I/O和磁盤的I/O來降低系統負載
    sendfile  on;

    #告訴nginx在一個數據包里發送所有頭文件,而不一個接一個的發送。
    tcp_nopush  on;

    #告訴nginx不要緩存數據,而是一段一段的發送--當需要及時發送數據時,就應該給應用設置這個屬性,
    #這樣發送一小塊數據信息時就不能立即得到返回值。
    tcp_nodelay    on;

    #長連接超時時間,單位是秒
    keepalive_timeout  65;

    #gzip模塊設置,使用 gzip 壓縮可以降低網站帶寬消耗,同時提升訪問速度。
    gzip  on;                     #開啟gzip
	
    gzip_min_length  1k;          #最小壓縮大小
	
    gzip_buffers     4 16k;       #壓縮緩沖區

    gzip_http_version 1.0;        #壓縮版本

    gzip_comp_level 2;            #壓縮等級

    gzip_types   text/plain text/css text/xml text/javascript application/json application/x-javascript application/xml application/xml+rss;          #壓縮類型

    #upstream作負載均衡,在此配置需要輪詢的服務器地址和端口號
	#max_fails為允許請求失敗的次數,默認為1.
    #weight為輪詢權重,根據不同的權重分配可以用來平衡服務器的訪問率。
    #指定要域名對應的WEB項目訪問地址
    upstream nginx.www.test.cn {
        server localhost:3000 max_fails=3 weight=1;
    }

    #主機配置
    server {
        #監聽端口
        listen       90;

        #自己指定要跳轉的域名
        server_name   192.168.1.19;
		
        #反向代理配置,
        #將所有請求為http://nginx.www.test.cn的請求全部轉發到upstream中定義的目標服務器中。
        location / {
			#定義首頁索引文件的名稱
			#index index.php index.html index.htm;

            #此處配置的域名必須與upstream的域名一致,才能轉發。
            proxy_pass     http://nginx.www.test.cn;
			
			#以下是一些反向代理的配置可刪除
			proxy_redirect             off;
			
			#后端的Web服務器可以通過X-Forwarded-For獲取用戶真實IP
			proxy_set_header           Host $host; 
			proxy_set_header           X-Real-IP $remote_addr; 
			proxy_set_header           X-Forwarded-For $proxy_add_x_forwarded_for; 
			
			#client_max_body_size       10m;   #允許客戶端請求的最大單文件字節數
			#client_body_buffer_size    128k;  #緩沖區代理緩沖用戶端請求的最大字節數
			#proxy_connect_timeout      300;   #nginx跟后端服務器連接超時時間(代理連接超時)
			#proxy_send_timeout         300;   #后端服務器數據回傳時間(代理發送超時)
			#proxy_read_timeout         300;   #連接成功后,后端服務器響應時間(代理接收超時)
			#proxy_buffer_size          4k;    #設置代理服務器(nginx)保存用戶頭信息的緩沖區大小
			#proxy_buffers              4 32k; #proxy_buffers緩沖區,網頁平均在32k以下的話,這樣設置
			#proxy_busy_buffers_size    64k;   #高負荷下緩沖大小(proxy_buffers*2)
			#proxy_temp_file_write_size 64k;   #設定緩存文件夾大小,大於這個值,將從upstream服務器傳
        }
		
        #單獨的access_log文件
        access_log  logs/192.168.1.19.access.log  main;

		#設定查看Nginx狀態的地址
		location /NginxStatus{
			 stub_status on;
			 access_log on;
			 auth_basic "NginxStatus";
			 auth_basic_user_file htpasswd;
		}
				
		#禁止訪問 .htxxx 文件
		location ~ /\.ht {
			deny all;
		}

        #字符集
        charset utf-8;
		
        #錯誤頁面
		error_page   500 502 503 504 /50x.html;  
			location = /50x.html {
			root   /root;
		}
    }
}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM