Linux
將埠 80 轉發到 8080 失敗
我正在嘗試將埠從 80 轉發到 8080(預設為 tomcat)。下面是我添加到 httpd 文件的內容。
<VirtualHost www.example.com:80> ProxyPreserveHost On ProxyRequests Off ServerName www.example.com ServerAlias example.com ProxyPass / http://localhost:8080/ ProxyPassReverse / http://localhost:8080/ </VirtualHost>
添加後,沒有任何變化的跡象。程式碼有什麼問題嗎?
Centos 5.9
apache 2.2
tomcat 7
whm/cpanel。
更新: 我的目標域是 www.99rounds.com:80 直接到 :8080
更新 2 添加答案中的程式碼並刪除 2 行日誌後。我得到: 請注意,centos 具有內置的 mod_proxy 支持,如果我強制它:loadModule …它會給我一個錯誤,說它是內置的。
我有一個關於如何在此處設置 Apache 反向代理的詳細答案。
查看您提供的配置:
<VirtualHost www.example.com:80> ProxyPreserveHost On ProxyRequests Off ServerName www.example.com ServerAlias example.com ProxyPass / http://localhost:8080/ ProxyPassReverse / http://localhost:8080/ </VirtualHost>
我會建議以下內容。我假設有一些東西——比如 ErrorLog 和 CustomLog——但這是我設置的方式。我相信的關鍵是
ServerName
&ServerAlias
結合<VirtualHost *:80>
:<VirtualHost *:80> ServerName www.99rounds.com ServerAlias 99rounds.com www.99rounds.com ErrorLog /var/log/apache2/www.99rounds.com.error.log CustomLog /var/log/apache2/www.99rounds.com.access.log combined # Settings for Apache Reverse Proxy <IfModule mod_proxy.c> # Proxy specific settings ProxyRequests Off ProxyPreserveHost On <Proxy *> AddDefaultCharset off Order deny,allow Allow from all </Proxy> ProxyPass / http://localhost:8080/ ProxyPassReverse / http://localhost:8080/ </IfModule> </VirtualHost>
**編輯:**還要確保您已在伺服器上啟用
mod_proxy
並mod_proxy_http
啟用:sudo a2enmod proxy sudo a2enmod proxy_http