一个子域的Nginx重定向

vbkedwbf  于 2022-11-02  发布在  Nginx
关注(0)|答案(3)|浏览(210)

有人知道Nginx中的交互是如何工作的吗?我现在有一个子域,我们称它为subdomain1,我想把它改为subdomain2。更具体地说,我在一个docker容器中运行所有的东西,我的证书将用于subdomain2。并且将不会有更多的服务器与subdomain1。我想保持来自google的流量用于subdomain1,但是名称不再合适,需要更改为subdomain2。类似的操作是否有效?是否会出现问题?

server {
    server_name subdomain1.mydomain.com;
    return 301 http://www.subdomain2.mydomain.com/$request_uri;
}
rjee0c15

rjee0c151#

类似的东西可以匹配:

server {
        listen 8066;
        server_name localhost;

        location / {
            rewrite (.*)$ http://www.google.com$1 redirect;
        }
}

8066是为了我的测试目的重定向到google.com。如果y尝试localhost:8066/foo,我会转到https://www.google.com/foo。注意,redirect关键字使它成为临时的。对于永久重定向,请使用permanent

jvidinwx

jvidinwx2#

是的,你的方法会奏效。以下几点可能会有所帮助:
1.由于您不希望subdomain 1有任何服务器,但在此重定向中,您需要确保subdomain 1也指向您托管subdomain 2的同一服务器
1.使用$scheme server { server_name subdomain1.mydomain.com; return 301 $scheme://subdomain2.mydomain.com$request_uri; }
1.通常人们避免在www.example.com之前使用wwwsub-domain.domain.com(您也可以参考这一点)

nkcskrwz

nkcskrwz3#

nginx中的server部分有两个必需的参数listenserver_name。将listen添加到您的配置中,它将工作
关于服务器的人https://nginx.org/en/docs/http/ngx_http_core_module.html#server
范例

server {
    listen 8080;
    server_name _;
    return 301 http://www.google.com/$request_uri;
}

相关问题