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

2021-04-24 15:02:46 字數 1585 閱讀 2758

【from】www.mlives.cn

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

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

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

解決辦法

在每個虛擬主機的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的幾個注意點

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

今天我的Ubuntu核心公升級到了2 6 24 22

今天我的ubuntu核心公升級到了2.6.24 22,發現了奇怪的事情,公升級之前我的版本是 21,每次啟動記憶體都占用220 230m之間,今天自動公升級到了2.6.24 22版本,重啟後發現記憶體竟然是159m,真是奇怪。不過這下好了,不用每次為開啟eclipse煩惱了。公升級核心後,隨之而來的...

nginx公升級到最新版

注意 主伺服器的ubuntu還是14.04的,這個需要公升級到16 步驟 必須是ubuntu16.0.4 在 etc apt sources.list.d 下新增乙個 nginx.list 檔案,內容如下 deb xenial nginx deb src xenial nginx 新增 nginx ...