Nginx从域A端口8080转发到域B端口80

时间:2016-10-28 12:08:44

标签: redirect nginx

目前,我能够从服务器A到服务器B执行所需的重定向,两者都是侦听端口80默认/位置。

我需要的是发送到服务器A端口8080非默认位置/ loc1到服务器B端口80(相同)位置/ loc1

的所有请求的附加转发
server {
    listen 80;
    server_name 1.1.1.1;
    return 301 $scheme://1.1.1.2$request_uri;
}

这是否只能通过添加下面的其他服务器部分来实现?

编辑:

server {
    listen 8080;
    server_name 1.1.1.1;

    location /loc1 {
        return 301 $scheme://1.1.1.2:80$request_uri;
    }
}

感谢任何帮助。

编辑:在配置中有两个上面的“服务器”部分完美无缺。

1 个答案:

答案 0 :(得分:1)

是的,您需要一个额外的服务器块才能收听8080.在您提供的第二个配置中,我认为这是一个错字。 8080不应该在server_name。此外,在那里使用return语句意味着1.1.1.1:8080所有请求将被重定向到1.1.1.2:80。如果您只想在/loc1位于URI中时重定向,请添加位置块,如下所示:

server{
       listen 8080;
       server_name 1.1.1.1;

       #rest of your config

       location /loc1 {
           return 301 $scheme://1.1.1.2:80$request_uri;
       }
 }