設定過無數次的reverse proxy, 沒想到在centos上踢鐵板. 來說說這次設定的過程..
由於之前事先安裝了apache 2.4.6, 本以為和之前版本及windows版一樣, 只要設定檔設好就好了. 沒想到惡夢連連, 浪費了我許多時間.
依據文件, 只要把proxy and proxy_html module loadmodule load進來, 並設定好就可以了. 所以就像之前版本及做法一樣, 以為所有modules應該存在modules目錄下, 沒多想設定好後開始測試..結果完全不work.. 也看不到錯誤訊息(以前啟動時, 有問題會在error log log 中看到相關訊息, 這次完全找不到.. 可以還給我以前單純的作業模式..不想要另一個windows..一堆黑箱, 超難debug .
後來看到一篇文章, 提及要先install proxy_html_module, 這一驚才去看modules下是否存在該module, 終於找到問題了, module不存在...
# yum install mod_proxy_html
.......
modules 下終於找到mod_proxy_html.so
為何會花這麼多時間才發現問題? 因為被系統誤導了..
在cond.modules.d的目錄下有兩個檔案, 00-proxy.conf and 00-proxyhtml.conf, 從兩個檔案的內容來看, 00-proxy.conf是設定loading proxy相關modules, 而00-proxyhtml.conf主要loading proxy_html_mod, 看到這個設定檔, 會想到module不存在嗎? 後來install mod_proxy_html, 竟然在00-proxy.conf中也出現了一行loading mod_proxy_html.so.....這不是搞笑嗎? centos你要嘛就做好, 不要只做一半, 還出現衝突狀況.
唉總算設定好了, 就來測一下.....失敗. 怎麼會呢? 調整下設定還是沒用...
此時想起error log可能有資訊....發現了
[error] (13)Permission denied: proxy: HTTP: attempt to connect to 192.168.1.1:8080 faile
上網找了一下很怪有答案..
By default, SELinux prevents Apache from initiating outbound connections, so it is unable to proxy requests to Bitbucket Server.
Resolution
Run the following command on the server to allow apache to make outbound connections.
/usr/sbin/setsebool -P httpd_can_network_connect 1
又是SELinux 惹的禍....看來用SELinux 很多地方都有雷..