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頭域數值
}
這只是簡單的橫向擴展配置。我只是淺嘗輒止,有更好的方式方法可以留言額,多謝閱讀。