從apache遷移到nginx的幾個心得

2022-07-23 01:00:39 字數 1586 閱讀 2375

關鍵字: apace, nginx, tomcat

我們的**是lvs

->apache->tomcat

架構 的

現在已經全面轉換成lvs->nginx

->tomcat架構

以下是我在遷移中遇到的幾個問題

當我們去訪問伺服器上的乙個目錄時候,他不會自動加上乙個/

,瀏覽器會給出改頁無法開啟的錯誤,這個時候瀏覽器去取的位址實際上是upstream中所寫的位址和埠或如果沒有使用 upstream時 他就會去訪問servername中設定的內容 比如

我設定的是localhost 瀏覽器會去訪問http

:。解決辦法

在每個虛擬主機的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$ /zone/index.html?userid=$1 last;

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

而/zone/index.html?userid=$1

不要用正則 也不匹配正則 /zone/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. 關於防盜煉

第一虛擬網的需求是 不是從本地來的請求給除乙個403

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

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

在alias裡

別名配置

location /res/

}5,關於動態請求**

location ~ ^/log in/(.*\.do)$

~ ^/login/(.*\.do)$ 這個表示 凡是匹配/login/ 下 .do的都**到乙個upstream池裡處理

這裡的$符號並不起多大作用 只要是有.do的他會全部轉 並不是以.do結尾的才轉

以上就是我遇到的問題及其解決辦法

WordPress從Apache遷移到nginx

1.停掉httpd當前服務,禁用重啟 開機重啟後,apache服務不再啟動p chkconfig httpd off2.安裝nginx yum y install nginx3.安裝php fpm yum install php fpm etc init.d php fpm start 該目錄下沒有...

從 ADT 遷移到 Android Studio

如果你看到上面的優點,已經克服了心中的懷疑和恐懼,準備動手遷移,下面提供一些遷移提示。部分需要科學上網 你無法科學上網?趕緊搜一下,自己搭或者買乙個吧。世界如此多嬌,人生苦短。將你遇到過問題的出錯資訊用 google 搜尋,第一條來自 stackoverflow 的答案就是你想要的。android ...

從 Redis 遷移到 SSDB

工具 在tools目錄中的redis import.phpphp 指令碼可以用來將 redis 伺服器上的資料,拷貝到 ssdb 伺服器上 用法 php redis import.php redis host redis port redis db ssdb host ssdb port 引數 請確...