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,返回重定向並有條件地選擇配置。
該模組上的break
,if
,return
,rewrite
,set
指令按照如下順序執行:
- 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中涉及到的所有...