如何将寻找 sub.example.com 的用户发送到 example.com:8082?

如何将寻找 sub.example.com 的用户发送到 example.com:8082?

如何将搜索 sub.example.com 的用户发送到 example.com:8082?我使用 Nginx 作为 Apache 的代理。我在端口 8082 上运行一项服务,并希望用户通过子域访问它

问候

安德斯

答案1

首先检查 DNS 设置,确保 sub.example.com 具有指向代理服务器公共 IP 的 A/AAAA 记录。然后让 Apache 使用虚拟主机监听 example.com:8082。

现在我们有几个可能的解决方案。你的问题没有明确说明你更喜欢哪一个:


选项 A:proxy_pass

用户应该在浏览器中看到 sub.example.com,同时后台从 Apache 的那个特殊端口获取该页面。

添加一个 nginx vhost 配置,其中服务器监听 sub.example.com 域(我假设是端口 80/443?)和一个位置部分以将流量传递到 example.com:8082:

    server {
        listen 80;
        listen [::]:80;
        server_name sub.example.com;

        location / {
            proxy_pass       http://example.com:8082;
            proxy_set_header Host      $host;
            proxy_set_header X-Real-IP $remote_addr;
        }

    }

这只是一个粗略的指南。当然还有很多事情需要注意。请提供更多详细信息以获得更详细的答案。


选项 B:重定向

用户将打开 sub.example.com 但随后被重定向,因此他在浏览器中看到 example.com:8082。

添加一个 nginx vhost 配置,其中服务器监听 sub.example.com 域(我假设端口 80/443?)并重定向 example.com:8082:

    server {
        listen 80;
        listen [::]:80;
        server_name sub.example.com;

        return 301 http://example.com:8082;

    }

这只是一份粗略的指南。当然还有更多细节,你需要注意。提供更多信息以获得更好的答案。

相关内容