技术解析

nginx 反向代理问题
0
2021-05-25 12:37:24
idczone
情况是,只有一个公网 IP: 222.222.222.222 只开了一个端口 80;(不能多开)
内网有很多 web 服务器,192.168.1.N 每个的端口各不同
问题来了,如何通过 80 端口去访问到不同的内网 web 服务.

server {
listen 80;
server_name2 22.222.222.222;
  location / {大带宽服务器
  proxy_pass http://192.168.1.N; ###这种只能代理到一个,多个的话如何搞
  proxy_redirect off;
  proxy_set_header Host $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}
location /web1/{
}
location /web2/{
}

upstream frontends {
server 127.0.0.1:8801;
server 127.0.0.1:8802;
server 127.0.0.1:8803;
server 127.0.0.1:8804;
server 127.0.0.1:8805;
server 127.0.0.1:8806;
server 127.0.0.1:8807;
server 127.0.0.1:8808;
}
server {
listen 8888; location / {
proxy_read_timeout 1800;
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_pass http://frontends;
}
}


你的意思是
location /web1 {
proxy_pass http://192.168.1.1:9000; <-----------------------------
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /web2 {
proxy_pass http://192.168.1.2:9001; /> proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
你的意思是这样吗?
访问 http://222.222.222.222/web1 就反代到 1:9000 http://222.222.222.222/web2 就 http://222.222.222.222/web2
我就是想要这种效果

绑定不同的域名,绑定不同的目录。只有这两个方案。

分目录或者域名

绑定好多域名

分目录有个不好的地方,如果你的 index 里面引入了./img/qwe.img 还能读出文件不?

分端口 或者 域名 都可以,还是端口来的实在,有条件可以上域名。

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服