天天看點

Nginx實戰基礎篇二 Nginx主配置檔案參數詳解

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,如需轉載請自行聯系原作者

繼續閱讀