Nginx conf

#工做進程數,建議設置爲CPU的總核數
worker_processes  2;
#全局錯誤日誌定義類型,日誌等級從低到高依次爲:
#debug | info | notice | warn | error | crit
error_log  logs/error.log  info;
#記錄主進程ID的文件
pid /nginx/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 application/x-javascript text/css application/xml;           #壓縮類型
	
	#upstream做負載均衡,在此配置須要輪詢的服務器地址和端口號,max_fails爲容許請求失敗的次數,默認爲1.
	#weight爲輪詢權重,根據不一樣的權重分配能夠用來平衡服務器的訪問率。
	#指定要域名對應的WEB項目訪問地址
	upstream hostname {
		server 192.168.33.129:18080 max_fails=0 weight=1;
	}

	#主機配置
	server {
		#監聽端口
		listen       80;
		#本身指定要跳轉的域名
		server_name  youjie.co;
		#字符集
		charset utf-8;
		#單獨的access_log文件
		access_log  logs/192.168.33.129.access.log  main;
		#反向代理配置,
		#將全部請求爲http://hostname的請求所有轉發到upstream中定義的目標服務器中。
		location / {
			#此處配置的域名必須與upstream的域名一致,才能轉發。
			proxy_pass     http://hostname;
			proxy_set_header   X-Real-IP $remote_addr;
		}

		#啓用nginx status 監聽頁面
		location /nginxstatus {
			stub_status on;
			access_log on;
		}
		#錯誤頁面
		error_page   500 502 503 504  /50x.html;
		location = /50x.html {
			root   html;
		}
	}

	upstream hostname1 {
		server 192.168.33.129:28080 max_fails=0 weight=1;
	}

	server {
		#監聽端口
		listen       80;
		#本身指定要訪問的域名
		server_name u-pai.cn;
		#字符集
		charset utf-8;
		#單獨的access_log文件
		access_log  logs/192.168.33.129.access.log  main;
		#反向代理配置,
		#將全部請求爲http://hostname1的請求所有轉發到upstream中定義的目標服務器中。
		location / {
			#此處配置的域名必須與upstream的域名一致,才能轉發。
			proxy_pass     http://hostname1;
			proxy_set_header   X-Real-IP $remote_addr;
		}

		#啓用nginx status 監聽頁面
		location /nginxstatus {
			stub_status on;
			access_log on;
		}
		#錯誤頁面
		error_page   500 502 503 504  /50x.html;
		location = /50x.html {
			root html;
		}
	}
}

代理MySQLjavascript

#user  nobody;
worker_processes  1;
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
#pid        logs/nginx.pid;
events {
    worker_connections  1024;
}
stream {
    upstream mysql {
        hash $remote_addr consistent;
        server 127.0.0.1:3306 max_fails=3 fail_timeout=30s;
    }
    server {
        listen 3307;
        proxy_connect_timeout 30s;
        proxy_timeout 600s;
        proxy_pass mysql;
    }
}
相關文章
相關標籤/搜索