iT邦幫忙

0

關於apache轉移到nginx的問題

  • 分享至 

  • xImage

問題如標題說的

會特別問的原因是因為評估的時候
發現有使用到.htaccess
大概約有快七百行
撇開效能優化那些
應該也有個六百多行
其中像是這樣的code

RewriteCond %{REQUEST_URI} (/o.product/([^\/]+)/([^\/]+)/(spec|measure|install|warranty|portfolio|swatches|inquiry))
RewriteCond %{REQUEST_URI} (/o.product/([^\/]+)/([^\/]+)/([^\/]+)/([^\/]+))
RewriteCond %{REQUEST_URI} (/o.product/([^\/]+)/([^\/]+)/([^\/]+))
RewriteCond %{REQUEST_URI} (/o.product/([^\/]+)/([^\/]+))

這還只是一小部分針對/o.product/後面會接的東西進行辨識
然後走到不同的地方

如果轉成NGINX
這些東西都要逐行檢查
且重寫到.conf的location中

如果目前沒有遇到效能問題的情況下
是否可以先不轉移

會猶豫要不要轉到NGINX上除了這個原因外
還有就是有其他專案接手了
時間上怕會不夠測試所以想先暫緩

想問問各位大大的意見

問一下改的原因是什麼嗎?
froce iT邦大師 1 級 ‧ 2022-05-18 09:08:16 檢舉
沒必要就不要先改啊,web server種類通常不會是主要的效能瓶頸。

建議可以先把config copy一份,視情況看有沒有必要改。
@MatthewWangUS
因為要改雲架構,想說如果有機會的話,就轉移到nginx去,也可以省些資源
@froce
也是先慢慢測試,搞不好會先改版程式XDDD
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

3
wiseguy
iT邦超人 1 級 ‧ 2022-05-18 11:25:22
最佳解答

rewrite 能寫到六七百行?!這對系統維護就是個很大的問題。
從你秀出來的 rewrite 片段就感覺 Regular Expression 寫的很冗贅。所以建議是:

  1. 如果確定要遷移,請先找一下 nginx , apache 的 rewrite 轉換對照,轉換過去。
  2. 換過去的同時,看看有沒有 RE 的高手幫你簡化一下。
  3. 我是認為,只要一個最頂端的入口放在 nginx conf 裡就好,導到一支程式中,由程式去做 path routing,而不是在 nginx 裡弄了六七百行規則。
  4. 設定轉換好後,同時跑 nginx 及 apache。比如 apache 用原來的 80 port,nginx 用 8080 port,選幾個人開始由 8080 port 去使用,看看有沒有問題。
  5. 用個兩三個月沒有問題,再關掉 apache,把 nginx 改到 80 port。

對rewrtie是六七百行
我用apache然後把rewrite_log打開
打開一頁log檔案就記錄了rewrite四千多行
我猜測是前人把rewrite當成router用
可喜的是前人都有做紀錄
每個rewrite是幹嘛的都有寫下來

簡化有點難
他連圖片連結都做rewrite
每個不同的圖片都做rewrite
banner rewrite
normail_img rewrite......

關於你說的步驟中
我目前卡在步驟3
所以我打算先異動雲架構後
再執行程式優化
不然光程式優化就不知道要去掉多少時間
感謝你~

0

簡單回答,會設定處理就改。不會就不要改

要不然就是用混合式的。nginx+appache的方式。

是會啦~~~只是要一條條處理比較煩瑣
如果說把這個活往後放
先把系統轉移好後
再提出改善方案
然後再把這個放置到改善方案裏面去
目的只是想爭取多些時間可以好好測試
我原本抓的時間太少了
預判錯誤......QAQ

我要發表回答

立即登入回答