對於Nginx基本設定檔和變數的解析

來源:互聯網
上載者:User
這篇文章主要介紹了關於對於Nginx基本設定檔和變數的解析,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

Nginx基本設定檔和變數詳解

1. 基本設定檔

/etc/nginx/nginx.conf

# nginx啟動並執行使用者user  nginx;# nginx進程數,建議設定為等於CPU總核心數。worker_processes  1;# 全域錯誤記錄檔檔案名稱和所在目錄,錯誤記錄檔記錄層級[ debug | info | notice | warn | error | crit ]error_log  /var/log/nginx/error.log warn;# 進程檔案nginx.pid所在目錄pid        /var/run/nginx.pid;# 一個nginx進程開啟的最多檔案描述符數目,# 理論值應該是最多開啟檔案數(系統的值ulimit -n)與nginx進程數相除,# 但是nginx分配請求並不均勻,所以建議與ulimit -n的值保持一致。# worker_rlimit_nofile 65535;events {    # 參考事件模型,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ];     # epoll模型是Linux 2.6以上版本核心中的高效能網路I/O模型,如果跑在FreeBSD上面,就用kqueue模型。    # use epoll;    # 單個進程最大串連數(最大串連數 = 串連數 * 進程數)    worker_connections  1024;        # multi_accept on;}# http伺服器配置http {    # 引入http協議的Content-Type與副檔名對應關係的檔案    include       /etc/nginx/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"';        # HTTP伺服器請求記錄檔的名稱和所在目錄、日誌記錄層級    access_log  /var/log/nginx/access.log  main;    # 開啟高效檔案傳輸模式。    # sendfile指令指定nginx是否調用sendfile函數來輸出檔案,對於普通應用設為on,    # 如果用來進行下載等應用磁碟IO重負載應用,可設定為off,以平衡磁碟與網路I/O處理速度,降低系統的負載。    # 注意:如果圖片顯示不正常把這個改成off。    sendfile        on;    # 防止網路阻塞    # tcp_nopush    on;    # tcp_nodelay   on;    # 開啟目錄列表訪問,合適下載伺服器,預設關閉。    # autoindex on;         # 開啟限制IP串連數的時候需要使用    # limit_zone crawler $binary_remote_addr 10m;         # 長連線逾時時間,單位是秒    keepalive_timeout  65;    # gzip模組設定    # 開啟gzip壓縮輸出    # gzip  on;    # 最小壓縮檔大小    # gzip_min_length 1k;     # 壓縮緩衝區    # gzip_buffers 4 16k;     # 壓縮版本(預設1.1,前端如果是squid2.5請使用1.0)    # gzip_http_version 1.0;     # 壓縮等級    # gzip_comp_level 2;     # 壓縮類型,預設就已經包含text/html,所以下面就不用再寫了,寫上去也不會有問題,但是會有一個warn。    # gzip_types text/plain application/x-javascript text/css application/xml;    # gzip_vary on;                 # FastCGI相關參數是為了改善網站的效能:減少資源佔用,提高訪問速度。    # fastcgi_connect_timeout 300;    # fastcgi_send_timeout 300;    # fastcgi_read_timeout 300;    # fastcgi_buffer_size 128k;    # fastcgi_buffers 8 128k;    # fastcgi_busy_buffers_size 128k;    # fastcgi_temp_file_write_size 128k;    # 允許用戶端請求的最大單檔案位元組數。     # 如果請求大於指定的大小,則NGINX發回HTTP 413(Request Entity too large)錯誤。     # 如果伺服器處理大檔案上傳,則該指令非常重要。    # client_max_body_size 20m;    # 用於請求主體的緩衝區大小。     # 如果主體超過緩衝區大小,則完整主體或其一部分將寫入臨時檔案。     # 如果NGINX配置為使用檔案而不是記憶體緩衝區,則該指令會被忽略。     # 預設情況下,該指令為32位系統設定一個8k緩衝區,為64位系統設定一個16k緩衝區。     # 該指令在NGINX配置的http,server和location區塊使用。    # client_body_buffer_size 128k;        # upstream abc.com {        # upstream的負載平衡,weight是權重,可以根據機器配置定義權重。weigth參數表示權值,權值越高被分配到的幾率越大。    #     server 192.168.10.121:80 weight=3;    #     server 192.168.10.122:80 weight=2;    #     server 192.168.10.123:80 weight=3;    # }        # 引入 '/etc/nginx/conf.d/' 目錄下以 '.conf' 結尾的檔案    include /etc/nginx/conf.d/*.conf;        # 虛擬機器主機的配置    server {        # 監聽連接埠        listen       80;        # 網域名稱,可以有多個,用空格隔開        server_name  localhost;                # 預設編碼        # charset utf-8;                 # 日誌格式設定        # log_format access '$remote_addr - $remote_user [$time_local] "$request" '        # '$status $body_bytes_sent "$http_referer" '        # '"$http_user_agent" $http_x_forwarded_for';        # 當前虛擬機器主機請求記錄檔的名稱和所在目錄、日誌記錄層級        # access_log  /var/log/nginx/host.access.log  main;        location / {            root   /usr/share/nginx/html;            index  index.html index.htm;        }            #error_page  404              /404.html;            # 將伺服器錯誤頁面重新導向到靜態頁面 /50x.html        error_page   500 502 503 504  /50x.html;        location = /50x.html {            root   /usr/share/nginx/html;        }            # proxy the PHP scripts to Apache listening on 127.0.0.1:80        # 將 PHP 指令碼反向 Proxy到監聽 127.0.0.1:80 連接埠的Apache        #location ~ \.php$ {        #    proxy_pass   http://127.0.0.1;        #}            # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000        # 將 PHP 指令碼反向 Proxy到監聽127.0.0.1:9000連接埠的FastCGI伺服器        #location ~ \.php$ {        #    root           html;        #    fastcgi_pass   127.0.0.1:9000;        #    fastcgi_index  index.php;        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;        #    include        fastcgi_params;        #}            # 如果Apache的主目錄與nginx的相同,拒絕訪問.htaccess檔案。        #location ~ /\.ht {        #    deny  all;        #}                # 圖片緩衝時間設定        # location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {        #     expires 10d;        # }                # JS和CSS緩衝時間設定        # location ~ .*\.(js|css)?$ {        #     expires 1h;        # }                # 對 "/" 啟用反向 Proxy        # location / {        #     proxy_pass http://127.0.0.1:88;        #     proxy_redirect off;        #     # 後端的Web伺服器可以通過X-Forwarded-For擷取使用者真實IP        #     proxy_set_header X-Real-IP $remote_addr;        #     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;        #     # 以下是一些反向 Proxy的配置,可選。        #     proxy_set_header Host $host;        #     # nginx跟後端伺服器連線逾時時間(代理連線逾時)        #     proxy_connect_timeout 90;         #     # 後端伺服器資料回傳時間(代理髮送逾時)        #     proxy_send_timeout 90;         #     # 串連成功後,後端伺服器回應時間(代理接收逾時)        #     proxy_read_timeout 90;         #     # 設定Proxy 伺服器(nginx)儲存使用者頭資訊的緩衝區大小        #     proxy_buffer_size 4k;         #     # proxy_buffers緩衝區,網頁平均在32k以下的設定        #     proxy_buffers 4 32k;         #     # 高負荷下緩衝大小(proxy_buffers*2)        #     proxy_busy_buffers_size 64k;         #     # 設定快取檔案夾大小,大於這個值,將從upstream伺服器傳        #     proxy_temp_file_write_size 64k;        # }    }}

2. Nginx變數

HTTP請求變數

  • arg_參數名:例如,$arg_userid,可以引用到請求參數userid的值

  • http_請求HEADER名:例如,$http_user_agent,可以引用到要求標頭資訊User-Agent的值

  • sent_http_返回HEADER名:在響應用戶端可添加header頭資訊

內建變數

Nginx內建的變數,參考Nginx文檔的Logging to syslog

自訂變數

伺服器管理員自己定義的變數

以上就是本文的全部內容,希望對大家的學習有所協助,更多相關內容請關注topic.alibabacloud.com!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.