nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream server {
server 127.0.0.1:8090 weight=1;
server 127.0.0.1:8070 weight=1;
}
server {
listen 80;
server_name 127.0.0.1;
location /hello {
proxy_pass http://server;
}
}
}
然后做两个除去端口不同都一致都项目,我这里用的spring boot的项目,直接打成jar包,然后启动
8070项目:
8090项目:
分别启动两个项目:
页面访问测试:
已经实现了横向拓展,中间还会涉及到一些ip问题,保留源ip之类的可以参考以下
这是项目获取端的,经过测试“x-forwarded-for” 就可以获取源ip
// System.out.println("x-forwarded-for :"+request.getHeader("x-forwarded-for"));
// System.out.println("X-Real-IP :"+request.getHeader("X-Real-IP"));
// System.out.println("Proxy-Client-IP :"+request.getHeader("Proxy-Client-IP"));
// System.out.println("WL-Proxy-Client-IP :"+request.getHeader("WL-Proxy-Client-IP"));
// System.out.println("getRemoteAddr :"+request.getRemoteAddr());
如果你根据“x-forwarded-for”获取不到源ip,可以试下以下方法,当然程序端是要参考上面的写法的。
nginx配置
location /hello {
proxy_pass http://server;
proxy_set_header Host $host;#保留代理之前的host
proxy_set_header X-Real-IP $remote_addr;#保留代理之前的真实客户端ip
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header HTTP_X_FORWARDED_FOR $remote_addr;#在多级代理的情况下,记录每次代理之前的客户端真实ip
proxy_redirect default;#指定修改被代理服务器返回的响应头中的location头域跟refresh头域数值
}
这只是简单的横向扩展配置。我只是浅尝辄止,有更好的方式方法可以留言额,多谢阅读。