nginx-反向代理

假设场景:

现有两台服务器
服务器1内网IP:192.168.1.123(搭建了XX项目,只允许内网访问)
服务器2外网IP:119.29.23.23

现在要实现访问119.29.23.23:5678/demo/时,反向代理到192.168.1.123:80,nginx的配置为:

server{ 
    listen 5678;
    server_name 119.29.23.23:5678; 
    location /demo/(.*) { 
        root /home/web; 
        proxy_pass http://192.168.1.123:80/$1?$args;  #url复写到代理,并挂上参数列表
        proxy_redirect http://192.168.1.123/  http://119.29.23.23:5678/demo/; #将refresh和location的url重写
    } 
}
配置解析
  1. proxy_pass解析
    实例:
    如果访问119.29.23.23:5678/demo/index.php?name=xiaoming&msg=hello
    将被定向至192.168.1.123:80/demo/index.php?name=xiaoming&msg=hello

  2. proxy_redirect解析
    如果请求有重定向Location:http://192.168.1.123/sayhi.php,那么回到客户端时会被改成http://119.29.23.23:5678/demo/sayhi.php

你可能感兴趣的:(nginx-反向代理)