apache 在虚拟机上重定向到本地 IP

apache 在虚拟机上重定向到本地 IP

我的 apache 设置有问题。

我使用的是 Proxmox 服务器,它有多个虚拟机,只有一个公共 IP。Apache 在 Proxmox 主机上运行,​​并通过反向代理将请求转发到虚拟机。Apache 也在虚拟机上运行,​​并通过文档根目录调用 Web 应用程序。

现在的问题是,当我在 URL 中输入现有目录时,apache 会重定向到虚拟机的本地 IP。

例子: https://example.com/admin--> 重定向至 -->http://10.10.10.101/管理员

不幸的是,我已经花了好几天时间尝试解决这个问题但却找不到错误。

感谢您的帮助。

设置 Proxmox 主机:

IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerAdmin [email protected]
    ServerName www.example.com
    ServerAlias www.example.com

    SSLProxyEngine On
    SSLProxyVerify none
    SSLProxyCheckPeerCN off
    SSLProxyCheckPeerName off
    SSLProxyCheckPeerExpire off
    ProxyPreserveHost On
    ProxyPass / http://10.10.10.101:80/
    ProxyPassReverse / http://10.10.10.101:80/
    Header add "Host" "www.example.com"
    RequestHeader set "Host" "www.example.com"

    Include /etc/letsencrypt/options-ssl-apache.conf
    SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
</VirtualHost>

设置虚拟机:

<VirtualHost *:80>
ServerAdmin [email protected]
ServerName www.example.com
ServerAlias www.example.com

Header add "Host" "www.example.com"
RequestHeader set "Host" "www.example.com"

DocumentRoot /var/www/www.example/current/

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

<Directory /var/www/www.example/current> 选项 +FollowSymLinks -Indexes AllowOverride All 要求全部授予

答案1

这是因为根据您提供的配置,没有与请求匹配的别名或服务器名称。

尝试将其编辑ServerName为 example.com 而不是 www.example,或者您可以将其添加为ServerAlias

例子:

<VirtualHost *:443>
    ServerAdmin [email protected]
    ServerName example.com #Check this line
    ServerAlias www.example.com

    SSLProxyEngine On
    SSLProxyVerify none
    SSLProxyCheckPeerCN off
    SSLProxyCheckPeerName off
    SSLProxyCheckPeerExpire off
    ProxyPreserveHost On
    ProxyPass / http://10.10.10.101:80/
    ProxyPassReverse / http://10.10.10.101:80/


    Include /etc/letsencrypt/options-ssl-apache.conf
    SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
</VirtualHost>

相关内容