1. 程式人生 > >Centos7+Nginx+Tomcat搭建叢集環境

Centos7+Nginx+Tomcat搭建叢集環境

部署多個Tomcat例項

[[email protected] /usr/local/src]# wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-9/v9.0.7/bin/apache-tomcat-9.0.7.tar.gz
[[email protected] /usr/local/src]# tar -zxvf apache-tomcat-9.0.7.tar.gz -C /usr/local/
[[email protected] /usr/local]# cp -r apache-tomcat-9.0.7 ./tomcat9-02
[[email protected]
/usr/local]# mv apache-tomcat-9.0.7 ./tomcat9-01
[[email protected] ~]# vim /etc/profile  # 在檔案末尾增加如下內容
export CATALINA_BASE=/usr/local/tomcat9-01
export CATALINA_HOME=/usr/local/tomcat9-01
export TOMCAT_HOME=/usr/local/tomcat9-01

export CATALINA_2_BASE=/usr/local/tomcat9-02
export CATALINA_2_HOME=/usr/local/tomcat9-02
export TOMCAT_2_HOME=/usr/local/tomcat9-02
[
[email protected]
~]# source /etc/profile # 使配置檔案生效
[[email protected] ~]# cd /usr/local/tomcat9-02/bin/
[[email protected] /usr/local/tomcat9-02/bin]# vim catalina.sh  # 找到如下那行註釋,在該註釋下,增加兩行配置
# OS specific support.  $var _must_ be set to either true or false.
export CATALINA_BASE=$CATALINA_2_BASE
export CATALINA_HOME=$CATALINA_2_HOME
[
[email protected]
/usr/local/tomcat9-02/bin]#
[[email protected] /usr/local/tomcat9-02/bin]# cd ../conf/
[[email protected] /usr/local/tomcat9-02/conf]# vim server.xml
# 第一個埠,Server port節點埠
<Server port="9005" shutdown="SHUTDOWN">

# 第二個埠,Connector port節點埠,也即是Tomcat訪問埠
<Connector port="9080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URIEncoding="UTF-8" />

# 第三個埠,Connector port節點埠
<Connector port="9009" protocol="AJP/1.3" redirectPort="8443" />        
[[email protected] /usr/local/tomcat9-02/conf]#  

Nginx+Tomcat搭建叢集

1).gcc:nginx編譯依賴gcc環境

   安裝命令:yum install gcc-c++

 2).pcre:(Perl Compatible Regular Expressions)是一個Perl庫,包括 perl 相容的正則表示式庫。nginx的http模組使用pcre來解析正則表示式.

   安裝命令:yum install -y pcre pcre-devel

 3).zlib:該庫提供了很多種壓縮和解壓縮的方式,nginx使用zlib對http包的內容進行gzip。

   安裝命令:yum install -y zlib zlib-devel

 4).openssl:一個強大的安全套接字層密碼庫,囊括主要的密碼演算法、常用的金鑰和證書封裝管理功能及SSL協議,並提供豐富的應用程式供測試或其它目的使用。nginx不僅支援http協議,還支援https(即在ssl協議上傳輸http).

   安裝命令:yum install -y openssl openssl-devel

[[email protected] ~]# cd /usr/local/src/
[[email protected] /usr/local/src]# wget http://nginx.org/download/nginx-1.14.0.tar.gz
[[email protected] /usr/local/src]# tar -zxvf nginx-1.14.0.tar.gz
[[email protected] /usr/local/src]# cd nginx-1.14.0
[[email protected] /usr/local/src/nginx-1.14.0]# ./configure --prefix=/usr/local/nginx
[[email protected] /usr/local/src/nginx-1.14.0]# echo $?
0
[[email protected] /usr/local/src/nginx-1.14.0]# make && make install
[[email protected] /usr/local/src/nginx-1.14.0]# echo $?
0
[[email protected] /usr/local/src/nginx-1.14.0]# cd ../../nginx/
[[email protected] /usr/local/nginx]# ls  # 安裝完成
conf  html  logs  sbin
[[email protected] /usr/local/nginx]#
[[email protected] /usr/local/nginx/conf]# mv nginx.conf nginx.conf.bak
[[email protected] /usr/local/nginx/conf]# vim nginx.conf  # 內容如下
user nobody nobody;
worker_processes 2;
error_log /usr/local/nginx/logs/nginx_error.log crit;
pid /usr/local/nginx/logs/nginx.pid;
worker_rlimit_nofile 51200;
events
{
    use epoll;
    worker_connections 6000;
}
http
{
    include mime.types;
    default_type application/octet-stream;
    server_names_hash_bucket_size 3526;
    server_names_hash_max_size 4096;
    log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]'
    ' $host "$request_uri" $status'
    ' "$http_referer" "$http_user_agent"';
    sendfile on;
    tcp_nopush on;
    keepalive_timeout 30;
    client_header_timeout 3m;
    client_body_timeout 3m;
    send_timeout 3m;
    connection_pool_size 256;
    client_header_buffer_size 1k;
    large_client_header_buffers 8 4k;
    request_pool_size 4k;
    output_buffers 4 32k;
    postpone_output 1460;
    client_max_body_size 10m;
    client_body_buffer_size 256k;
    client_body_temp_path /usr/local/nginx/client_body_temp;
    proxy_temp_path /usr/local/nginx/proxy_temp;
    fastcgi_temp_path /usr/local/nginx/fastcgi_temp;
    fastcgi_intercept_errors on;
    tcp_nodelay on;
    gzip on;
    gzip_min_length 1k;
    gzip_buffers 4 8k;
    gzip_comp_level 5;
    gzip_http_version 1.1;
    gzip_types text/plain application/x-javascript text/css text/htm 
    application/xml;
    add_header Access-Control-Allow-Origin *;
    include vhost/*.conf;
}
[[email protected] /usr/local/nginx/conf]# mkdir ./vhost  # 建立虛擬主機配置檔案的存放目錄
[[email protected] /usr/local/nginx/conf]# cd vhost/
[[email protected] /usr/local/nginx/conf/vhost]# vim www.xxx.com.conf  # 建立虛擬主機配置檔案,內容如下:
upstream 192.168.190.129 {
        # 需要負載的server列表,可以直接使用ip
        server 192.168.190.129:8080 weight=1;
        server 192.168.190.129:9080 weight=3;
        # server www.xxx.com:8080 weight=1;
        # server www.xxx.com:9080 weight=3;
}

server{
  listen 80;
  autoindex on;
  server_name 192.168.190;
  access_log /usr/local/nginx/logs/access.log combined;
  index index.html index.htm index.jsp;

  location / {
        proxy_pass http://192.168.190.129;
        add_header Access-Control-Allow-Origin *;
  }
}
[[email protected] /usr/local/nginx/conf/vhost]# cd ../../sbin/
[[email protected] /usr/local/nginx/sbin]# ./nginx -t  # 檢查nginx配置檔案
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[[email protected] /usr/local/nginx/sbin]# ./nginx -c /usr/local/nginx/conf/nginx.conf  # 啟動nginx服務
[[email protected] /usr/local/nginx/sbin]# netstat -lntp | grep nginx  # 檢查埠是否已監聽
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      5676/nginx: master  
[[email protected] /usr/local/nginx/sbin]# ps aux |grep nginx  # 檢查nginx程序是否正常
root       5676  0.0  0.0  20492   624 ?        Ss   19:57   0:00 nginx: master process ./nginx -c /usr/local/nginx/conf/nginx.conf
nobody     5677  0.0  0.0  22936  3220 ?        S    19:57   0:00 nginx: worker process
nobody     5678  0.0  0.0  22936  3220 ?        S    19:57   0:00 nginx: worker process
root       5683  0.0  0.0 112680   976 pts/0    S+   19:58   0:00 grep --color=auto nginx
[[email protected] /usr/local/nginx/sbin]# 
[[email protected] ~]# cd /usr/local/tomcat9-01/bin/
[[email protected] /usr/local/tomcat9-01/bin]# ./startup.sh 
Using CATALINA_BASE:   /usr/local/tomcat9-01
Using CATALINA_HOME:   /usr/local/tomcat9-01
Using CATALINA_TMPDIR: /usr/local/tomcat9-01/temp
Using JRE_HOME:        /usr/local/jdk1.8
Using CLASSPATH:       /usr/local/tomcat9-01/bin/bootstrap.jar:/usr/local/tomcat9-01/bin/tomcat-juli.jar
Tomcat started.
[[email protected] /usr/local/tomcat9-01/bin]# cd /usr/local/tomcat9-02/bin/
[[email protected] /usr/local/tomcat9-02/bin]# ./startup.sh 
Using CATALINA_BASE:   /usr/local/tomcat9-02
Using CATALINA_HOME:   /usr/local/tomcat9-02
Using CATALINA_TMPDIR: /usr/local/tomcat9-02/temp
Using JRE_HOME:        /usr/local/jdk1.8
Using CLASSPATH:       /usr/local/tomcat9-02/bin/bootstrap.jar:/usr/local/tomcat9-02/bin/tomcat-juli.jar
Tomcat started.
[[email protected] /usr/local/tomcat9-02/bin]# 
[email protected] ~]# vim /usr/local/tomcat9-02/webapps/ROOT/index.jsp 
<div id="congrats" class="curved container">
    <h2>I'm Tomcat 2</h2>
</div>
[[email protected] ~]# 

設定防火牆規則,開放80埠:

[[email protected] ~]# firewall-cmd --zone=public --add-port=80/tcp --permanent
success
[[email protected] ~]# firewall-cmd --reload
success
[[email protected] ~]# 

驗證: