nginx+tomcat 負載平衡

來源:互聯網
上載者:User

標籤:軟體   web伺服器   作業系統   原始碼   能力   

Tomcat+Nginx負載平衡伺服器構建======================================================================Tomcat伺服器是一個免費的開原始碼的Web應用伺服器,屬於輕量級的網站應用程式伺服器,應用在中小型系統和並發訪問使用者不是很多的場合下。它和Aapache或nginx這些web伺服器是一樣的。都能處理html頁面。由於tomcat處理html的能力遠不及Aapache或nginx,所以通常是作為一個servlet和JSP容器使用。----------------------------------------------------------------------案例環境伺服器名稱:tomcat伺服器 作業系統:  centos 6.5 x86_64 伺服器IP:  192.168.200.111  所需軟體:  1、apache-tomcat-7.0.54.tar.gz 2、jdk-7u65-linux-x64.tar.gz=======================================================================1、實驗準備1)關閉防火牆,selinux機制。[[email protected] xue]# iptables -F[[email protected] xue]# service iptables stopiptables:將鏈設定為政策 ACCEPT:filter                    [確定]iptables:清除防火牆規則:                                 [確定]iptables:正在卸載模組:                                   [確定][[email protected] xue]# chkconfig iptables off[[email protected] xue]# setenforce 02)在安裝tomcat之前,先安裝JDK(Java Development Kit)[[email protected] xue]# tar xf jdk-7u65-linux-x64.tar.gz [[email protected] xue]# mv jdk1.7.0_65/ /usr/local/java[[email protected] xue]# vi /etc/profile.d/java.shexport  JAVA_HOME=/usr/local/java  //設定Java根目錄export PATH=$PATH:$JAVA_HOME/bin   //在PATH環境變數中添加JAVA根目錄下的子目錄------------------------------------------[[email protected] xue]# source  /etc/profile.d/java.sh [[email protected] xue]# java -versionjava version "1.7.0_45"OpenJDK Runtime Environment (rhel-2.4.3.3.el6-x86_64 u45-b15)OpenJDK 64-Bit Server VM (build 24.45-b08, mixed mode)3)安裝配置tomcat[[email protected] xue]# tar xf apache-tomcat-7.0.54.tar.gz [[email protected] xue]# mv apache-tomcat-7.0.54 /usr/local/tomcat7[[email protected] xue]# /usr/local/tomcat7/bin/startup.sh Using CATALINA_BASE:   /usr/local/tomcat7Using CATALINA_HOME:   /usr/local/tomcat7Using CATALINA_TMPDIR: /usr/local/tomcat7/tempUsing JRE_HOME:        /usr/local/javaUsing CLASSPATH:       /usr/local/tomcat7/bin/bootstrap.jar:/usr/local/tomcat7/bin/tomcat-juli.jarTomcat started.tomcat 預設運行在8080連接埠。[[email protected] xue]# netstat -anpt |grep 8080tcp        0      0 :::8080                     :::*                        LISTEN      3060/java 隨後,我們可以開啟瀏覽器測試: http://192.168.200.111:8080/如果關閉tomcat的話.可以執行下面命令:[[email protected] xue]# /usr/local/tomcat7/bin/shutdown.sh =================================================================4)、建立java的web網站4.1 首先建立網站發布路徑[[email protected] ~]# mkdir -pv /web/webapp1mkdir: 已建立目錄 "/web"mkdir: 已建立目錄 "/web/webapp1"4.2 在/web/webapp1下建立測試頁index.jsp[[email protected] ~]# vi /web/webapp1/index.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><html><head><title>JSP test1 page</title></head><body><% out.println("Welcom to test site,http://www.test1.com");%></body></html>     -------------------------------------------------------------4.3修改tomcat的server.xml檔案(定義一個虛擬機器主機)[[email protected] ~]# vi /usr/local/tomcat7/conf/server.xml            <Host name="localhost"  appBase="webapps"               unpackWARs="true" autoDeploy="true">          <Context docBase="/web/webapp1" path="" reloadable="false">          </Context>注釋:docBase: web應用的文檔基準目錄reloadable:設定監視類是否變化。4.4: 重啟tomcat.[[email protected] ~]# /usr/local/tomcat7/bin/shutdown.sh [[email protected] ~]# /usr/local/tomcat7/bin/startup.sh4.5: 測試http://192.168.200.111:8080/ 出現"Welcom to test site,http://www.test1.com "表示成功。=======================================================案例: Nginx+Tomcat負載平衡叢集=================================案例環境伺服器名稱:tomcat伺服器1作業系統:  centos 6.5 x86_64 伺服器IP:  192.168.200.111  所需軟體:  1、apache-tomcat-7.0.54.tar.gz 2、jdk-7u65-linux-x64.tar.gz伺服器名稱:tomcat伺服器2作業系統:  centos 6.5 x86_64 伺服器IP:  192.168.200.112  所需軟體:  1、apache-tomcat-7.0.54.tar.gz 2、jdk-7u65-linux-x64.tar.gz伺服器名稱:Nginx伺服器作業系統:  centos 6.5 x86_64 伺服器IP:  192.168.200.113  所需軟體:  nginx-1.6.0.tar.gz=======================================================================參照tomcat1來搭建tomcat2唯一不同之處:[[email protected] ~]# vi /web/webapp1/index.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><html><head><title>JSP test2 page</title></head><body><% out.println("Welcom to test site,http://www.test2.com");%></body></html>============================================================================1)Nginx伺服器配置1.1 關閉Linux iptables防火牆及selinux同上1.2 安裝nginx相關軟體包[[email protected] ~]# yum -y install pcre-devel zlib-devel openssl-devel[[email protected] ~]# yum -y install gcc gcc-c++ make1.3 解壓並安裝nginx[[email protected] nginx-1.6.0]# ./configure --prefix=/usr/local/nginx --user=www ---group=www --with-file-aio --with-http_stub_status_module --with-http_gzip_static_module --with-http_flv_module --with-http_ssl_module && make && make install1.4 配置nginx.conf[[email protected] nginx-1.6.0]# cd /usr/local/nginx/conf/[[email protected] conf]# cp nginx.conf nginx.conf.bak[[email protected] conf]# vi nginx.conf[[email protected] conf]# cat nginx.confuser  www www;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 {    use epoll;    worker_connections  1024;}http {    include       mime.types;    default_type  application/octet-stream;    log_format  main  ‘$remote_addr - $remote_user [$time_local] "$request" ‘                      ‘$status $body_bytes_sent "$http_referer" ‘                      ‘"$http_user_agent" "$http_x_forwarded_for"‘;    access_log  logs/access.log  main;    sendfile        on;    #tcp_nopush     on;    #keepalive_timeout  0;    keepalive_timeout  65;    #gzip  on; upstream tomcat_server { server 192.168.200.111:8080 weight=1; server 192.168.200.112:8080 weight=1; }    server {        listen       80;        server_name  localhost;        charset utf-8;        #access_log  logs/host.access.log  main;        location / {            root   html;            index  index.html index.htm;         proxy_pass http://tomcat_server;        }        #error_page  404              /404.html;        # redirect server error pages to the static page /50x.html        #        error_page   500 502 503 504  /50x.html;        location = /50x.html {            root   html;        }        # proxy the PHP scripts to Apache listening on 127.0.0.1:80        #        #location ~ \.php$ {        #    proxy_pass   http://127.0.0.1;        #}        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000        #        #location ~ \.php$ {        #    root           html;        #    fastcgi_pass   127.0.0.1:9000;        #    fastcgi_index  index.php;        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;        #    include        fastcgi_params;        #}        # deny access to .htaccess files, if Apache‘s document root        # concurs with nginx‘s one        #        #location ~ /\.ht {        #    deny  all;        #}    }    # another virtual host using mix of IP-, name-, and port-based configuration    #    #server {    #    listen       8000;    #    listen       somename:8080;    #    server_name  somename  alias  another.alias;    #    location / {    #        root   html;    #        index  index.html index.htm;    #    }    #}    # HTTPS server    #    #server {    #    listen       443 ssl;    #    server_name  localhost;    #    ssl_certificate      cert.pem;    #    ssl_certificate_key  cert.key;    #    ssl_session_cache    shared:SSL:1m;    #    ssl_session_timeout  5m;    #    ssl_ciphers  HIGH:!aNULL:!MD5;    #    ssl_prefer_server_ciphers  on;    #    location / {    #        root   html;    #        index  index.html index.htm;    #    }    #}}-------------------------------------------------------------1.5 測試nginx設定檔是否正常:[[email protected] conf]# /usr/local/nginx/sbin/nginx -tnginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful1.6 啟動nginx伺服器[[email protected] conf]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf[[email protected] conf]# ps aux|grep nginxroot      5118  0.0  0.1  45000  1140 ?        Ss   22:38   0:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.confwww       5119  0.0  0.1  45452  1736 ?        S    22:38   0:00 nginx: worker process                                          root      5122  0.0  0.0 103248   880 pts/0    S+   22:38   0:00 grep nginx[[email protected] conf]# netstat -anpt |grep nginxtcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      5118/nginx2) 測試負載平衡器的效果http://192.168.200.113/======================================================nginx日誌分割指令碼:===================[[email protected] nginx]# cat logs/nginx.pid 5118[[email protected] nginx]# kill -QUIT 5118-QUIT : 關閉進程-HUP : 重載服務, 平滑重啟-USR1: 日誌切換,(通過結合crontab,每天產生一個新的日誌)-USR2: 平滑升級可執行程式=[[email protected] ~]# cat /opt/fenge-nginx.sh#!/bin/bash#fenge nginx logssavepath_log=‘/home/nginx/logs‘nglogs=‘/usr/local/nginx/logs‘[ -d $savepath_log ] || mkdir -p $savepath_log[ -d $savepath_log/$(date +%Y)/$(date +%m) ] || mkdir -p  $savepath_log/$(date +%Y)/$(date +%m)mv $nglogs/access.log $savepath_log/$(date +%Y)/$(date +%m)/access.$(date +%Y%m%d).logmv $nglogs/error.log $savepath_log/$(date +%Y)/$(date +%m)/error.$(date +%Y%m%d).logkill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)---------------------------------------------------------------------------[[email protected] ~]# chmod +x /opt/fenge-nginx.sh [[email protected] ~]# /opt/fenge-nginx.sh [[email protected] ~]# tree /home/nginx//home/nginx/└── logs    └── 2014        └── 12            ├── access.20141220.log            └── error.20141220.log3 directories, 2 files-----------------------------------------------------[[email protected] ~]# crontab  -l0 0 * * * /opt/fenge-nginx.sh

本文出自 “江湖笑笑生” 部落格,謝絕轉載!

nginx+tomcat 負載平衡

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.