摘要:[Apache] 設定反向代理ProxyPass與ProxyPassReverse之筆記
情況
- 一台Windows的電腦,有自己的對外IP
- 一台Android的手機,執行IP摄像头來達成IP CAM
- 一個無線網路環境,上面2個裝置都可以連線進去,並得到192.168.*.*之IP
目標
想要從外部網路看到IP CAM的畫面
限制
因為缺乏資金,所以無法透過AP的NAT(Virtual Server)來解決
解決方案
上網搜尋後,找到Apache中有mod_proxy這個東西可以解決我的問題,在一番設定與除錯後,終於達成我的目的,詳細步驟如下:
- 在httpd-ajp.conf中設定ProxyPass與ProxyPassReverse (我是安裝XAMPP,如果沒有這個檔案的話,可以把這兩行加在任一設定檔裡面,例如: httpd.conf)
ProxyPass /cam http://192.168.0.100:8080/ ProxyPassReverse /cam http://192.168.0.100:8080/
- 重開Apache
- 瀏覽http://localhost/cam/
- 出現Server error! Error 500
- 打開error.log來看,發現
AH01144: No protocol handler was valid for the URL /cam. If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule.
- 上網搜尋後,發現要在httpd.conf中,將下面這行取消註解
LoadModule proxy_http_module modules/mod_proxy_http.so
- 再次瀏覽http://localhost/cam/,成功
後記
發現有更快更方便的做法
- 在httpd.conf中的Listen 80後面加上Listen 8081
- 在httpd-vhosts.conf或httpd-xampp.conf中新增
<VirtualHost *:8081> ProxyPass / http://192.168.0.100:8080/ ProxyPassReverse / http://192.168.0.100:8080/ </VirtualHost>
文章內容僅提供技術分享,如有錯誤還請不吝指教。