nginx 配置及注意點

2021-08-16 15:50:40 字數 1931 閱讀 8846

nginx 配置檔案如下:

...

#location 1

location /

#會先到**根目錄下尋找指定的 404 頁面, 沒有找到就會用 nginx 生成的 404 頁

error_page 404 /404.html

#location 2

location ~ \.php$

...

訪問 http://server_name/***.php 時該 ***.php 是不存在的,以為會出現 nginx 的404 頁面,沒想到出現的是:

no input file specified.

因為 根據上面的配置,滿足了 location 2 的要求,把相關資料傳給了 php-fpm,等於是由 php-fpm 處理了。這個報錯資訊實際上是由 php-fpm 返回的,不會走error_page 404 /404.html

比較好的改進方法是,在 location 2 中加入try_files $uri =404;,這樣檔案找不到時能夠統一走error_page 404 /404.html

也可以將所有指向不存在的 php 檔案的請求都重定向到某個 php 檔案:

try_files $uri /index.php

nginx location

語法:

location [ = | ~ | ~* | ^~ ] uri 

location @name

1.nginx 會將 uri 和 prefix location 比較,選中匹配到的長度最長的 prefix location(如果是location ^~ uri格式的,則不進行步驟2)。

2.然後再將 uri 和 正規表示式 location 比較(按照宣告的順序),選中第乙個匹配到的 location;如果沒有匹配到,則選擇步驟1中的 location。

nginx rewirte

ngx_http_rewrite_module 模組用於使用 pcre 正規表示式更改請求 uri,返回重定向並有條件地選擇配置。
該模組上的breakifreturnrewriteset指令按照如下順序執行:

- sever 層級的指令按順序執行。

- 重複:

1.根據請求的 uri 尋找 location

2.在找到的 location 中指令按照順序執行

3.如果請求的 uri 被重寫了,迴圈將會繼續,但是不超過10次。

break

停止處理 ngx_http_rewrite_module 的當前指令集。(迴圈也會中斷)

last

停止處理 ngx_http_rewrite_module 的當前指令集,去匹配新的 location。(類似 continue)

rewrite

語法:rewrite regex replacement [flag]

如果請求 uri 符合正規表示式regex,uri 將會被 replacement 替換。可以使用 flag 來終止指令的後續處理。

如果 replacement 以http://https://$scheme開頭,停止後續處理,將重定向返回給客戶端。

nginx 內嵌變數

. . .

. .

附上 nginx 英文文件:中文文件翻譯不全)

webpack 配置檔案及注意點

1.什麼是webpack配置檔案?我們在打包js檔案的時候需要輸入 npx webpack index.js 這句指令的含義是 利用webpack將index.js和它依賴的模組打包到乙個檔案中 其實在webpack指令中除了可以通過命令列的方式告訴webpack需要打包哪個檔案以外,還可以通過配置...

Nginx 配置注意事項

如果後台涉及到大檔案上傳那麼修改增加以下幾個配置,否則你會發現上傳經常超時,配置地方可配置在htttp 頁可以配置在server 中 client max body size 1m 限制請求體的大小,若超過所設定的大小,返回413錯誤,預設1m client header timeout 1m 讀取...

vs code環境配置注意點

可以安裝anaconda2和anaconda3,然後再vscode中的settings.json中設定需要的python目錄,就可以實現不同的python切換。例如 settings.json中寫入如下 可以實現python2的需求以及numpy matplotlib等anaconda中涉及到的所有...