簡體   English   中英

使用 ProxyPass 拒絕所有站點的連接

[英]Connection Refused to all sites using ProxyPass

我正在嘗試為要移動到另一個內部服務器的https站點設置代理轉發。 A 希望遠程服務器也處理證書。

問題是,當使用下面的代碼時,所有 1000 個網站都關閉了。 不僅僅是有問題的網站。 在瀏覽器中,我收到所有 1000 個網站的“連接被拒絕”。 所以我認為這是一個配置錯誤。 盡管當我運行sudo apachectl configtest它會返回Syntax OK

有人能看到我在這里做錯了什么嗎? 在對 SO 和其他平台進行詳盡搜索后,我終生無法看到此配置有什么問題。

<VirtualHost *:443>
    ServerName myfunkywebsite.com

    ProxyRequests Off
    <Proxy *:443>
        Order deny,allow
        Allow from all
    </Proxy>

    SSLProxyEngine on
    ProxyPreserveHost On
    ProxyPass / https://10.0.0.3:443/
    ProxyPassReverse / https://10.0.0.3:443/
    <Location />
        Order allow,deny
        Allow from all
    </Location>
</VirtualHost>

注意,如果我只使用直接的http這確實有效——我非常困惑問題出在哪里,以及為什么所有站點都會受到影響,就好像 Apache 本身正在失敗一樣。

<VirtualHost *:80>
    ServerName myfunkywebsite.com

    ProxyRequests Off
    <Proxy *:80>
        Order deny,allow
        Allow from all
    </Proxy>

    ProxyPreserveHost On
    ProxyPass / https://10.0.0.3:80/
    ProxyPassReverse / https://10.0.0.3:80/
    <Location />
        Order allow,deny
        Allow from all
    </Location>
</VirtualHost>

啟用的模塊:

mod_proxy
mod_proxy_connect
mod_proxy_html
mod_proxy_http

從這個 Apache 服務器檢查您是否可以通過 curl 直接訪問后端服務器

curl -v https://10.0.0.3:443/

如果它沒有返回 HTTP Response 200 OK 那么問題出在后端服務器上,您需要正確配置它並確保它偵聽端口 443

如果返回 200 OK 則可能存在禁止 apache 主機訪問后端的安全規則

去檢查:

getenforce

禁用它

setenforce 0
sed '/Enforcing/s//permissive/g' -i /etc/sysconfig/selinux

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM