繁体   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