Nginx 主配置文件參數詳解


Nginx 主配置文件參數詳解

	Nginx 安裝完畢后,會有響應的安裝目錄,安裝目錄里 nginx.conf 為 nginx 的主配置文件, ginx 主配置文件分為 4 部分,main(全局配置)、server(主機設置)、upstream(負載均衡
	
	服務器設)和 location(URL 匹配特定位置的設置),這四者關系為:server 繼承 main,
	
	location 繼承 server,upstream 既不會繼承其他設置也不會被繼承。

一、Nginx 的 main(全局配置)文件

	[root@rhel6u3-7 server]# vim /usr/local/nginx/conf/nginx.conf
	
	user	nginx nginx; //指定 nginx 運行的用戶及用戶組為 nginx,默認為 nobody
	
	worker_processes	2; //開啟的進程數,一般跟邏輯 cpu 核數一致
	
	error_log logs/error.log notice; //定於全局錯誤日志文件,級別以 notice 顯示。還有 debug、info、warn、error、crit 模式,debug 輸出最多,crit 輸出最少,更加實際環境而定。
	
	pid	logs/nginx.pid; //指定進程 id 的存儲文件位置
	
	worker_rlimit_nofile 65535; //指定一個 nginx 進程打開的最多文件描述符數目,受系統進程的最大打開文
	
	件數量限制
	
	events {
	
	use epoll; 設置工作模式為 epoll,除此之外還有 select、poll、kqueue、rtsig 和/dev/poll 模式 worker_connections 65535; //定義每個進程的最大連接數 受系統進程的最大打開文件數量限制
	
	}
	
	
	[root@rhel6u3-7 server]# cat /proc/cpuinfo | grep "processor" | wc –l	//查看邏輯 CPU 核數
	
	[root@rhel6u3-7 server]# ulimit -n 65535	//設置系統進程的最大打開文件數量


二、Nginx 的 HTTP 服務器配置,Gzip 配置。

	http {
	
	*****************************以下是 http 服務器全局配置*********************************
	
	include mime.types; //主模塊指令,實現對配置文件所包含的文件的設定,可以減少主配置文件的復雜度,DNS 主配置文件中的 zonerfc1912,acl 基本上都是用的 include 語句
	
	default_type	application/octet-stream; //核心模塊指令,這里默認設置為二進制流,也就是當文件
	
	類型未定義時使用這種方式
	
	//下面代碼為日志格式的設定,main 為日志格式的名稱,可自行設置,后面引用。
	
	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 logs/access.log main; //引用日志 main client_max_body_size 20m; //設置允許客戶端請求的最大的單個文件字節數
	
	client_header_buffer_size 32k; //指定來自客戶端請求頭的 headebuffer 大小 client_body_temp_path /dev/shm/client_body_temp; //指定連接請求試圖寫入緩存文件的目錄路徑 large_client_header_buffers 4 32k; //指定客戶端請求中較大的消息頭的緩存最大數量和大小,目前
	設置為 4 個 32KB
	
	sendfile	on; //開啟高效文件傳輸模式
	
	tcp_nopush	on; //開啟防止網絡阻塞
	
	tcp_nodelay	on; //開啟防止網絡阻塞
	
	keepalive_timeout 65; //設置客戶端連接保存活動的超時時間 client_header_timeout 10; //用於設置客戶端請求讀取超時時間 client_body_timeout 10; //用於設置客戶端請求主體讀取超時時間 send_timeout 10; //用於設置相應客戶端的超時時間
	
	//以下是 httpGzip 模塊配置
	
	#httpGzip modules
	
	gzip on; //開啟 gzip 壓縮 gzip_min_length 1k; //設置允許壓縮的頁面最小字節數
	
	gzip_buffers 4 16k; //申請 4 個單位為 16K 的內存作為壓縮結果流緩存 gzip_http_version 1.1; //設置識別 http 協議的版本,默認是 1.1 gzip_comp_level 2; //指定 gzip 壓縮比,1-9 數字越小,壓縮比越小,速度越快.
	
	gzip_types text/plain	application/x-javascript text/css application/xml; //指定壓縮的類型
	
	gzip_vary on; //讓前端的緩存服務器存經過 gzip 壓縮的頁面


三、nginx 的 server 虛擬主機配置

	兩種方式一種是直接在主配置文件中設置 server 字段配置虛擬主機,另外一種是使用
	
	include 字段設置虛擬主機,這樣可以減少主配置文件的復雜性。
	
	*****************************以下是 server 主機設置*********************************
	
	server {
	
	listen	80;	//監聽端口為 80
	
	server_name	www.rsyslog.org;	//設置主機域名
	
	charset gb2312;	//設置訪問的語言編碼
	
	access_log	logs/www.rsyslog.org.access.log	main; //設置虛擬主機訪問日志的存放路徑及日
	
	志的格式為 main
	
	location / {	//設置虛擬主機的基本信息
	
	root	sites/www;	//設置虛擬主機的網站根目錄
	
	index	index.html index.htm; //設置虛擬主機默認訪問的網頁
	
	}
	
	location /status {	// 查看 nginx 當前的狀態情況,需要模塊 “--with-http_stub_status_module”支
	
	持
	
	stub_status on;
	
	access_log /usr/local/nginx/logs/status.log; auth_basic "NginxStatus"; }
	}
	
	include /usr/local/nginx/server/www1.rsyslog.org; //使用 include 字段設置 server,內容如下
	
	[root@rhel6u3-7 ~]# cat /usr/local/nginx/server/www1.rsyslog.org
	
	
	
	
	
	
	server {
	
	listen	80;
	
	server_name	www1.rsyslog.org;
	
	location / {
	
	root	sites/www1;
	
	index	index.html index.htm;
	
	}
	
	}
	
	upstream 模塊后面負載均衡再做介紹!

  

更多內容請訪問 李興利博客


免責聲明!

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



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