我有一个 apache 实例和一个 payara 服务器,其中有一个部署在“:8080/app-name”上的应用程序。我正在尝试将网站的根目录代理到此端口和应用程序。我的配置如下:
httpd配置文件
<VirtualHost *:80>
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
ProxyPreserveHost Off
ProxyRequests Off
SSLProxyEngine On
ServerName example.com
ServerAlias www.example.com
ProxyPass / http://localhost:8080/app-name
ProxyPassReverse / http://localhost:8080/app-name
</VirtualHost>
问题是,当我尝试前往时,example.com
我被重定向到,example.com//
并且没有显示任何内容。
任何想法如何解决这一问题 ?
答案1
由于您没有包含任何日志,我只能猜测并给您一些提示。请使用 Apache 错误日志中的详细信息更新您的问题。
# TLS VHost on Port 80? - move to 443.
# Needs
## Listen *:443 https
# as well.
<VirtualHost *:80>
# Move LoadModule directives away from VHost configs.
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
ProxyPreserveHost Off
ProxyRequests Off
# TLS VHosts need TLS directives too - they're missing
SSLProxyEngine On
ServerName site-name.com
ServerAlias www.site-name.com
# Use trailing slashes on downstream host URLs
ProxyPass / http://localhost:8080/app-name/
ProxyPassReverse / http://localhost:8080/app-name/
</VirtualHost>
查看文档了解如何正确配置 TLS:https://httpd.apache.org/docs/2.4/en/ssl/ssl_howto.html,https://bettercrypto.org/static/applied-crypto-hardening.pdf。
添加权限以允许访问:
<Proxy http://localhost:8080/app-name/>
Require all granted
</Proxy>
调整 SELinux:
setsebool -P httpd_can_network_relay=1