利用nginx爲多個xxljob配置統一入口

  如何利用nginx爲多個xxljob配置統一入口,而且用戶登錄後ip固定不會飄?

  首先,需要確保這些xxljob的上下文路徑是一致的,上下文路徑可以在根目錄下xxl-job-admin/src/main/resources/application.properties中的server.servlet.context-path字段得知,默認爲/xxl-job-admin。

  然後修改nginx.conf文件,其中location字段與proxy_pass中的路徑需要與xxljob的上下文路徑保持一致。

worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;
    upstream xxljob-server{
        ip_hash;
        server XXX.XX.XX.XX:10100;#第一個xxljob後端地址
        server XXX.XX.XX.XX:10100;#第二個xxljob後端地址
    }
    server {
        listen       8080;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location /xxl-job-admin/ {
            proxy_pass http://xxljob-server/xxl-job-admin/;
            index index.html index.htm;
        }
    }
}

順便總結下nginx的upstream負載均衡支持5種分配方式

1.輪詢(默認方式):每個請求按照時間順序輪流分配到不同的後端服務器,如果某個後端服務器down掉後,能自動剔除。

2.weight :可以指定輪詢比率,weight和訪問機率成正比,主要應用於後端服務器異質的場景下。

upstream server {
     server XXX.XX.XX.XX weight=1;#第一個後端地址
     server XXX.XX.XX.XX weight=2;#第二個後端地址
     server XXX.XX.XX.XX weight=3;#第三個後端地址
}

3.ip_hash:每個請求按照訪問ip(即Nginx的前置服務器或者客戶端IP)的hash結果分配,這樣每個訪客會固定訪問一個後端服務器,可以解決session一致問題。

4.fair:fair顧名思義,公平地按照後端服務器的響應時間(rt)來分配請求,響應時間短即rt小的後端服務器優先分配請求。

upstream server {
     fair;
     server XXX.XX.XX.XX;#第一個後端地址
     server XXX.XX.XX.XX;#第二個後端地址
     server XXX.XX.XX.XX;#第三個後端地址
}

5.url_hash:與ip_hash類似,但是按照訪問url的hash結果來分配請求,使得每個url定向到同一個後端服務器,主要應用於後端服務器爲緩存時的場景下。

upstream server {
     hash $request_uri;
     server XXX.XX.XX.XX;#第一個後端地址
     server XXX.XX.XX.XX;#第二個後端地址
     server XXX.XX.XX.XX;#第三個後端地址
}

 

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