nginx 實現負載均衡,橫向擴展,保留源ip等

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頭域數值
}

 這只是簡單的橫向擴展配置。我只是淺嘗輒止,有更好的方式方法可以留言額,多謝閱讀。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章