天天看點

LNMP下Nginx.conf常用配置項詳解

當出現403跨域錯誤的時候 No 'Access-Control-Allow-Origin' header is present on the requested resource時,

需要給Nginx伺服器配置以下響應的header參數以解決跨域問題;

方法1,使用return 301重定向:

方法2,使用rewrite重定向:

對于return和rewrite的差別,可以閱讀這篇文章:Creating NGINX Rewrite Rules

另外:推薦自動生成正确的 Nginx SSL 配置網站(預設開啟了 HSTS ):https://mozilla.github.io/server-side-tls/ssl-config-generator/

指令作用

比對指定的請求uri(請求uri不包含查詢字元串,如http://localhost:8080/test?id=10,請求uri是/test)

文法形式

比對模式及順序

比對方式:普通字元串(literal string)和正規表達式(regular expression),其中 ~ 和 ~* 用于正規表達式, 其他字首和無任何字首都用于普通字元串。

比對順序:先比對普通字元串,将最精确的比對暫時存儲;

常用配置指令alias、root、proxy_pass

1、alias:别名配置,用于通路檔案系統,在比對到location配置的URL路徑後,指向alias配置的路徑,如:

請求/test/1.jpg(省略了協定和域名),将會傳回檔案/usr/local/1.jpg。

如果alias配置在正則比對的location内,則正規表達式中必須包含捕獲語句(也就是括号()),而且alias配置中也要引用這些捕獲值。如:

請求中隻要能比對到正則,比如/img/flower.png  或者  /resource/img/flower.png,都會轉換為請求/usr/local/images/flower.png。

2、root:根路徑配置,用于通路檔案系統,在比對到location配置的URL路徑後,指向root配置的路徑,并把請求路徑附加到其後,如:

請求/test/1.jpg,将會傳回檔案/usr/local/test/1.jpg。

3、proxy_pass——反向代理配置,用于代理請求,适用于前後端負載分離或多台機器、伺服器負載分離的場景,在比對到location配置的URL路徑後,轉發請求到proxy_pass配置額URL,是否會附加location配置路徑與proxy_pass配置的路徑後是否有"/"有關,有"/"則不附加,如:

請求/test/1.jpg,将會被nginx轉發請求到http://127.0.0.1:8080/1.jpg(未附加/test/路徑)。

通過web界面檢視時Nginx需要開啟status子產品,也就是安裝Nginx時加上 --with-http_stub_status_module,然後配置Nginx.conf,在server點裡面加入如下内容

location /status {

  stub_status on;

  access_log /usr/local/nginx/logs/status.log;

  auth_basic "NginxStatus";

}

 配置完後重新啟動Nginx後,我們可以通過浏覽器通路http://localhost/status ,如圖:

LNMP下Nginx.conf常用配置項詳解

 參數解析:

參數

釋義

Active connections

目前 Nginx 正處理的活動連接配接數

server accepts handled requests

總共處理了467079 個連接配接 , 成功建立 467079次握手,總共處理了5387526個請求

Reading

Nginx讀取到用戶端的 Header 資訊數

Writing 

Nginx傳回給用戶端的 Header 資訊數

Waiting

 開啟 keep-alive 的情況下,這個值等于 active - (reading + writing),意思就是 Nginx 已經處理完正在等候下一次請求指令的駐留連接配接

繼續閱讀