nginx域名配置非80端口的301跳转

有一台ng配置了xixicat.com的域名,端口为80;另外一台ng配置的具体的业务服务,比如/article,其端口为8080.

配置

 server {
        listen       80;
        server_name  xixicat.com;

        location / {
            
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header Host $host:$server_port;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://192.168.99.100:8080 ;
        }

    }
  • article服务

 server {
        listen       8080;
        server_name  xixicat.com;

        location / {
            return 301 /article ;
        }
        
        location /article {
            alias   html/article;
            index  index.html index.htm;
        }

    }

问题及方案

此时如果访问xixicat.com/article,则301到xixicat.com:8080/article,这个不是我们想要的,如何解决呢

 server {
        listen       80;
        server_name  xixicat.com;
        proxy_redirect http://xixicat.com:8080/ /; 
        location / {
            
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header Host $host:$server_port;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://192.168.99.100:8080 ;
        }

    }
    原文作者:codecraft
    原文地址: https://segmentfault.com/a/1190000009909188
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞