標籤:軟體 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 負載平衡