我成功设置了一个 Apache,它充当我本地网络中一台机器上运行的服务的反向代理(具有基本身份验证和 https)。
从互联网连接工作正常,但如果我想从局域网连接,一些客户端(例如基于 Java 的)在连接时会遇到问题(证书问题)。
因此,为了方便起见,我希望允许本地机器通过 http 进行连接,而无需基本身份验证。如何实现?
这是我当前的虚拟主机:
<VirtualHost _default_:80>
DocumentRoot "${SRVROOT}/htdocs"
#ServerName www.example.com:80
</VirtualHost>
<VirtualHost *:443>
ServerAdmin gmail.com
ServerName <some domain>
ProxyPreserveHost On
ProxyRequests Off
ProxyVia Off
ProxyPass / http://127.0.0.1:8082/
ProxyPassReverse / http://127.0.0.1:8082/
<Location />
AuthUserFile "...passwd.txt"
AuthName "secured"
AuthType Basic
Require valid-user
</Location>
Alias /.well-known C:/xampp/htdocs/.well-known
SSLEngine on
SSLCertificateFile "...chain.pem"
SSLCertificateKeyFile "...key.pem"
SSLCertificateChainFile "...-crt.pem"
</VirtualHost>
第一个是需要更新 letsencrypt 证书。第二个是我想要为本地机器打开的(没有基本身份验证的 http)
答案1
您可以使用相同的代理指令,但要通过 IP 地址或网络进行限制。将类似内容以及所需的任何其他指令添加到端口 80 虚拟主机的以下内容中:
ProxyPass /http://127.0.0.1:8082/
ProxyPassReverse /http://127.0.0.1:8082/
<Location />
需要 ip <CIDR 表示法中的本地网络>
</Location>