1

简而言之,我可以使用访问我的网站,example.com:3000但我想使用sub.example.com.

我正在使用 WHM 使用example.com域来管理我的服务器。我已经使用WHM控制面板为sub.example.com. 它工作正常并重定向到sub.example.com/cgi-sys/defaultwebpage.cgi.

我还尝试通过在文件中添加以下行来使用VirtualHost进行反向代理,如此处所述:/etc/apache2/conf/httpd.conf

<VirtualHost *:80>
    ServerName sub.example.com
    ProxyPreserveHost on
    ProxyPass / http://localhost:3000/
</VirtualHost>

然后我使用sudo systemctl restart httpd. 但是,子域仍然重定向到sub.example.com/cgi-sys/defaultwebpage.cgi路径而不是转发到port:3000. 你能帮我解决这个问题吗?

值得一提的是,服务器在 CentOS(7.7 版)和 Apache(2.4.41 版)上使用 WHM 和 CPanel(84.0.21 版),并 port:3000通过 docker-compose 连接到 docker 映像(gitea)。

4

1 回答 1

1

我在相同的设置下遇到了同样的问题,并且能够通过使用此配置来解决它:

<VirtualHost sub.example.com:80>

    ServerName sub.example.com
    ServerAlias sub.example.com

    ProxyRequests Off
    ProxyPreserveHost On
    ProxyPass / http://localhost:3000/
    ProxyPassReverse / http://localhost:3000/

</VirtualHost>

将其添加到 WHM 中的 Apache 包含指令: https ://docs.cpanel.net/whm/service-configuration/include-editor/

对于 SSL 端口 443,您必须使用 IP 而不是域:

<VirtualHost 1.1.1.1:443>
于 2021-09-28T22:11:10.247 回答