Nginx安裝完畢後,會有響應的安裝目錄,安裝目錄裡nginx.conf為nginx的主配置檔案,ginx主配置檔案分為4部分,main(全局配置)、server(主機設定)、upstream(負載均衡伺服器設)和location(URL比對特定位置的設定),這四者關系為:server繼承main,location繼承server,upstream既不會繼承其他設定也不會被繼承。
<b>一、</b><b>Nginx</b><b>的</b><b>main</b><b>(全局配置)檔案</b>
[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 //設定系統程序的最大打開檔案數量
<b>二、</b><b>Nginx</b><b>的</b><b>HTTP</b><b>伺服器配置,</b><b>Gzip</b><b>配置。</b>
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壓縮的頁面
<b>三、</b><b>nginx</b><b>的</b><b>server</b><b>虛拟主機配置</b><b></b>
<b></b>
兩種方式一種是直接在主配置檔案中設定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子產品後面負載均衡再做介紹!
本文轉自淩激冰51CTO部落格,原文連結:http://blog.51cto.com/dreamfire/1140995,如需轉載請自行聯系原作者