1. 程式人生 > >Linux筆記 #09# Tomcat多開以及Nginx負載均衡簡單例子

Linux筆記 #09# Tomcat多開以及Nginx負載均衡簡單例子

apach serve span weight 全局環境變量 單例 splay top 技術

索引

    1. Tomcat怎樣多開。。
      • 1、添加環境變量(最基礎、關鍵的步驟!)
      • 2、改catalina.sh
      • 3、改相關端口
    2. Nginx負載均衡簡單例子

Tomcat怎樣多開。。

演示一下如何開兩個(開n個也差不了多少):

1、添加環境變量(最基礎、關鍵的步驟!)

首先通過復制弄幾個tomcat出來:

技術分享圖片

(盡量不影響原有的配置,畢竟實際生產環境並不需要多開)

編輯etc/profile,添加如下幾行,名字可以隨便取,不過之後要對應:

# cat1
CAT1_BASE=/opt/tomcat/cat_7070
CAT1_HOME=/opt/tomcat/cat_7070
TOMCAT1_HOME
=/opt/tomcat/cat_7070 export CAT1_BASE CAT1_HOME TOMCAT1_HOME # cat2 CAT2_BASE=/opt/tomcat/cat_9090 CAT2_HOME=/opt/tomcat/cat_9090 TOMCAT2_HOME=/opt/tomcat/cat_9090 export CAT2_BASE CAT2_HOME TOMCAT2_HOME

編輯好後保存並退出,通過source /etc/profile命令讓配置立即生效

2、改catalina.sh

catalina.sh在bin目錄下,startup.sh等操作都會調用這個腳本。在起始位置添加類似下面的東西(覆蓋全局環境變量):

export CATALINA_BASE=$CAT1_BASE
export CATALINA_HOME=$CAT1_HOME

技術分享圖片

3、改相關端口

編輯conf/server.xml,反正我是一股腦把裏面的8xxx全改成7xxx(除了8080改成7070外)。。改好後保存退出就可以啟動了。

另外一個cat2也是一樣操作。於是就可以同時開好幾個tomcat啦。。

技術分享圖片

Nginx負載均衡簡單例子

超級簡單。。

開好多個tomcat後,只需修改一下nginx.conf就行了,如下所示:

技術分享圖片

技術分享圖片
user root;
worker_processes 4;
pid /run/nginx.pid;

events {
    worker_connections 768;
    # multi_accept on;
}

http {

    ##
    # Basic Settings
    ##

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;
    # server_tokens off;

    # server_names_hash_bucket_size 64;
    # server_name_in_redirect off;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    ##
    # SSL Settings
    ##

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
    ssl_prefer_server_ciphers on;

    ##
    # Logging Settings
    ##

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    ##
    # Gzip Settings
    ##

    gzip on;
    gzip_disable "msie6";

    # gzip_vary on;
    # gzip_proxied any;
    # gzip_comp_level 6;
    # gzip_buffers 16 8k;
    # gzip_http_version 1.1;
    # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

    ##
    # Virtual Host Configs
    ##

    # include /etc/nginx/conf.d/*.conf;
    # include /etc/nginx/sites-enabled/*;    

        upstream tomcat {
            server ***.**.**.**:7070 weight=1;
            server ***.**.**.**:9090 weight=1;
        }
    
    server {
        location / {
            proxy_pass http://tomcat;
        }
    }
}


#mail {
#    # See sample authentication script at:
#    # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
# 
#    # auth_http localhost/auth.php;
#    # pop3_capabilities "TOP" "USER";
#    # imap_capabilities "IMAP4rev1" "UIDPLUS";
# 
#    server {
#        listen     localhost:110;
#        protocol   pop3;
#        proxy      on;
#    }
# 
#    server {
#        listen     localhost:143;
#        protocol   imap;
#        proxy      on;
#    }
#}
nginx.conf

再下一步是reload、測試並觀察請求分發情況。

一種方式是直接看tomcat的日誌,但是有n個的話就很麻煩了。。。

另一種方式是修改nginx的默認日誌輸出(同樣是編輯nginx.conf然後reload):

        ##
        # Logging Settings
        ##

        log_format myformat ‘$upstream_addr - ....‘;

        access_log /var/log/nginx/access.log myformat;
        error_log /var/log/nginx/error.log;

觀察access日誌:

技術分享圖片

Linux筆記 #09# Tomcat多開以及Nginx負載均衡簡單例子