【问题标题】:apache reverse proxy hhtpsapache反向代理https
【发布时间】:2017-02-13 00:31:25
【问题描述】:

设置 apache 反向代理 客户端 ==> 代理 ==> 服务器

这是在我本地的 Windows 机器上进行测试,在我的主机文件中设置了一个条目,将代理 dns 映射到 127.0.0.1

httpd.conf

<VirtualHost *:443>
     ServerName <proxy Server>
     SSLEngine On
     SSLProxyEngine On
     ProxyRequests Off
     ProxyPreserveHost On
     <Proxy *>
        Order deny,allow
        Allow from all
     </Proxy>
     SSLCertificateFile "<cert for proxy server>"
     SSLCertificateKeyFile "<key for proxy server>"
     ProxyPass /  https://appserver.com/
     ProxyPassReverse /  https://appserver.com/
</VirtualHost>

我在启动时在 error.log 中看不到任何错误。当我发出请求 https://proxy.com 时,access.log 或 error.log 中没有条目。

任何人都可以在配置中看到问题或提供一些想法吗? 谢谢 拉胡尔

【问题讨论】:

  • 模块加载 LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_connect_module modules/mod_proxy_connect.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule ssl_module modules/mod_ssl.so
  • 代理请求设置为关闭
  • ProxyRequests Off 建议用于设置反向代理。 Apache 网站说“使用反向代理(使用 ProxyPass 指令并关闭 ProxyRequests)时,访问控制不太重要,因为客户端只能联系您专门配置的主机。”
  • 也尝试使用 SSLProxyCheckPeerName 和 SSLProxyCheckPeerCN,因为 off 没有影响

标签: apache https reverse-proxy


【解决方案1】:

您只需要以下内容即可进行 SSL 代理:

<VirtualHost *:443>
     ServerName <proxy Server>
     SSLEngine On
     ProxyPass "/"  "http://www.example.com/"
     ProxyPassReverse "/"  "http://www.example.com/"
     SSLCertificateFile "<cert for proxy server>"
     SSLCertificateKeyFile "<key for proxy server>"
</VirtualHost>

其他的就不用了。

【讨论】:

  • 嗨,迈克,是的,我试过了,但没有运气。我得到“无法访问该站点”。 拒绝连接。
【解决方案2】:

好的,所以它终于奏效了。从头开始 1.在httpd.conf中添加了Listen 443它已经为端口80(Listen 80) 2. 一个个启用模块

LoadModule ssl_module modules/mod_ssl.so
LoadModule proxy_http_module modules/mod_proxy_http.so 
LoadModule proxy_module modules/mod_proxy.so
LoadModule ssl_module modules/mod_ssl.so

3。在 httpd.conf 中取消注释 httpd-vhosts.conf 4.在httpd-vhosts.conf中添加如下内容

<VirtualHost *:443>
ServerAdmin xyz@mail.com
DocumentRoot "c:/Apache24/htdocs"
ServerName <proxy Server>
ErrorLog "c:/Apache24/logs/error-ssl.log"
CustomLog "c:/Apache24/logs/access-ssl.log" common
ProxyRequests Off
ProxyPreserveHost Off
SSLProxyEngine On
SSLEngine on
<Proxy *>
    Order deny,allow
    Allow from all
</Proxy>

 SSLCertificateFile "<cert for proxy server>"
 SSLCertificateKeyFile "<Key for proxy server>"

ProxyPass /  https://appserver.com/
ProxyPassReverse / https://appserver.com/
</VirtualHost>

它开始工作了。尝试了很多东西,做了很多改变,从一开始就很有意义。主要是在 httpd.conf 文件中缺少 Listen 443

【讨论】:

    猜你喜欢
    • 2017-07-10
    • 1970-01-01
    • 1970-01-01
    • 2018-01-21
    • 2013-04-02
    • 1970-01-01
    • 2020-11-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多