apache轉換到了nginx的幾個注意點

2021-05-28 10:19:59 字數 1585 閱讀 8199

最近把整站從apache公升級到了nginx,客戶的站點大概有30臺伺服器大部分架構位tomcat+apache,只有乙個php頁面 

一下是我公升級遇到的幾個問題的注意點 

1.  

當我們去訪問伺服器上的乙個目錄時候,他不會自動加上乙個/ ,瀏覽器會給出改頁無法開啟的錯誤,這個時候瀏覽器去取的位址實際上是upstream中所寫的位址和埠或如果沒有使用upstream時 當使用localhost做servername時候 瀏覽器會去訪問 

解決辦法 

在每個虛擬主機的server定義中加上 

if (-d $request_filename)  

注意 root欄位的定義也一定要出現在server中 如果server中沒有定義root 錯誤還將存在 

例子: 

server  

error_page   405 =200 @405; 

location @405  

location / 

2.url重寫的注意事項: 

原有的url支援正則  重寫的url不支援正則 

rewrite ^/(\d+)\.home$ /index.html?userid=$1 last; 

這個重寫中 ^/(\d+)\.home$ 這部分支援正則  

而/index.html?userid=$1 

不要用正則 也不匹配正則 /index.html?*userid=$1 這樣他就會去找.html?*userid=$1這個url 然後給你個404 not found 

3.post方式去訪問靜態檔案 

apache、iis、nginx等絕大多數web伺服器,都不允許靜態檔案響應post請求,否則會返回「http/1.1 405 method not allowed」錯誤。(但是之前程式在apache上跑 沒問題) 

如果有這個需求呢 就要做如下配置了 

error_page   405 =200 @405; 

location @405  

把所有405錯誤重定向成200 然後吧所有405錯誤的請求全部交給乙個**去執行 

或者寫上本地路徑,因為我的路徑比較多 所以重定向請求到一台web伺服器上了 

4.。關於防盜煉  

1.com的需求是 不是從本來來的請求給除乙個403  

因為在虛擬主機裡配置毫無作用 可能是我們用的是虛擬目錄的緣故  

所以我們直接對目錄做的防盜煉  

在alias裡 

別名配置 

location /res/  

} 5,關於動態請求** 

location  ~ ^/login/(.*\.do)$  

~ ^/login/(.*\.do)$ 這個表示 凡是匹配/login/ 下 .do的都**到乙個upstream池裡處理 這裡的$符號並不起多大作用 只要是有.do的他會全部轉 並不是以.do結尾的才轉 

6.關於php上傳檔案大小的問題 

只改php裡的配置是沒有用的 

需要更改的地方還有nginx的配置 

client_max_body_size 10m; 

他的預設值是1m; 

以上就是基本的注意點

**:

apache公升級到了nginx的幾個注意點

from www.mlives.cn 最近把整站從apache公升級到了nginx,客戶的站點大概有30臺伺服器大部分架構位tomcat apache,只有乙個php頁面 一下是我公升級遇到的幾個問題的注意點 1.當我們去訪問伺服器上的乙個目錄時候,他不會自動加上乙個 瀏覽器會給出改頁無法開啟的錯誤...

apache公升級到了nginx的幾個注意點

最近把整站從apache公升級到了nginx,客戶的站點大概有30臺伺服器大部分架構位tomcat apache,只有乙個php頁面 一下是我公升級遇到的幾個問題的注意點 1.當我們去訪問伺服器上的乙個目錄時候,他不會自動加上乙個 瀏覽器會給出改頁無法開啟的錯誤,這個時候瀏覽器去取的位址實際上是up...

轉換到 COFF 期間失敗

終極解決方案 vs2010在經歷一些更新後,建立win32 console project時會出 error lnk1123 錯誤,解決方案為將 專案 專案屬性 配置屬性 清單工具 輸入和輸出 嵌入清單 是 改為 否 即可,但是沒新建乙個專案都要這樣設定一次。在建立vs2010 win32 proj...