關鍵字: 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 引數 請確...