nginx简介
Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。
下面是采用一台机器nginx+双tomcat集群负载均衡方案。当更新项目时可以停止tomcat1,在启动,接着停止别外一个tomcat2,这样可以不会让客户感觉你在停止项目更新。这是为了节约成本的情况下,有效方案。通过这方案可以演变更多tomcat集群,只是把tomcat放在不同的服务器里,把nginx配置的里的反向代理ip修改一下。后期会写一个高可用的tomcat方案。
1.安装jdk是64位系统
下裁jdk-6u45-linux-x64.bin
[root@tomcat135 ~]# ls
anaconda-ks.cfg install.log nginx-1.2.8.tar.gz
apache-tomcat-6.0.18.tar.gz install.log.syslog pcre-7.9.tar.gz
Desktop jdk-6u45-linux-x64.bin
[root@tomcat135 ~]# chmod +x jdk-6u45-linux-x64.bin
[root@tomcat135 ~]# ./jdk-6u45-linux-x64.bin
[root@tomcat135 ~]# mv jdk1.6.0_45 /opt/jdk
配置jdk在环境变量中/etc/profile
[root@tomcat135 ~]# vi /etc/profile
在最后增加
JAVA_HOME=/opt/jdk
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
export LC_ALL="zh_CN.GB18030" #解决中文乱码问题
[root@tomcat135 ~]# source /etc/profile
查是否配置成功
[root@tomcat135 ~]# java -version
java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)
以上说明成功了
2.安装与配置tomcat
下裁apache-tomcat-6.0.18.tar.gz
[root@tomcat135 ~]# tar zxvf apache-tomcat-6.0.18.tar.gz
解压之后拷贝两个tomcat
创建项目目录为www
[root@tomcat135 ~]# mkdir -p /web/www
[root@tomcat135 ~]# cp -r apache-tomcat-6.0.18 /opt/tomcat1
[root@tomcat135 ~]# cp -r apache-tomcat-6.0.18 /opt/tomcat2
配置tomcat
[root@tomcat135 ~]# cd /opt/tomcat1/conf/
tomcat1与tomcat2的配置一样,只有端口不一样。
[root@tomcat135 conf]# vi server.xml
在<Host> </Host>之间都都要增加
<Context path="" docBase="/web/www" >
<Manager className="org.apache.catalina.session.PersistentManager" debug="0" saveOnRestart="true" maxActiveSessions="-1" minIdleSwap="-1" maxIdleSwap="-1" maxIdleBackup="-1" >
<Store className="org.apache.catalina.session.FileStore" directory="sessions"/>
</Manager>
</Context>
找到<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
把8080端口修改成8071
而tomcat2端口修改成8072
找到<Server port="8005" shutdown="SHUTDOWN">
<Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />修改成不同端口,不然会出错
启动tomcat1
[root@tomcat135 tomcat1]# cd /opt/tomcat1/bin/
[root@tomcat135 bin]# sh startup.sh
启动tomcat2
[root@tomcat135 bin]# cd /opt/tomcat2/bin/
[root@tomcat135 bin]# sh startup.sh
查看是否启动
[root@tomcat135 bin]# ps aux | grep tomcat
avahi 3813 0.0 0.0 23292 1412 ? Ss 16:58 0:00 avahi-daemon: running [tomcat135.local]
root 4296 6.7 3.1 846344 65548 pts/1 Sl 17:28 0:08 /opt/jdk/bin/java -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/opt/tomcat1/conf/logging.properties -Djava.endorsed.dirs=/opt/tomcat1/endorsed -classpath :/opt/tomcat1/bin/bootstrap.jar -Dcatalina.base=/opt/tomcat1 -Dcatalina.home=/opt/tomcat1 -Djava.io.tmpdir=/opt/tomcat1/temp org.apache.catalina.startup.Bootstrap start
root 4335 156 2.9 917648 61604 pts/1 Sl 17:30 0:07 /opt/jdk/bin/java -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/opt/tomcat2/conf/logging.properties -Djava.endorsed.dirs=/opt/tomcat2/endorsed -classpath :/opt/tomcat2/bin/bootstrap.jar -Dcatalina.base=/opt/tomcat2 -Dcatalina.home=/opt/tomcat2 -Djava.io.tmpdir=/opt/tomcat2/temp org.apache.catalina.startup.Bootstrap start
root 4361 0.0 0.0 63460 816 pts/1 S+ 17:30 0:00 grep tomcat
[root@tomcat135 bin]# netstat -tunlp
tcp 0 0 :::8071 :::* LISTEN 4296/java
tcp 0 0 :::8072 :::* LISTEN 4386/java
说明以上启动成功
4.安装nginx
安装nginx依赖包
yum -y install gcc gcc-c++
下载pcre-7.9.tar.gz
[root@tomcat135 ~]# tar zxvf pcre-7.9.tar.gz
[root@tomcat135 ~]# cd pcre-7.9
[root@tomcat135 pcre-7.9]# ./configure
[root@tomcat135 pcre-7.9]# make && make install
安装nginx
下载nginx-1.2.8.tar.gz
[root@tomcat135 ~]# tar zxvf nginx-1.2.8.tar.gz
[root@tomcat135 ~]# cd nginx-1.2.8
[root@tomcat135 nginx-1.2.8]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
[root@tomcat135 nginx-1.2.8]# make && make install
配置nginx
[root@tomcat135 nginx-1.2.8]# vi /usr/local/nginx/conf/nginx.conf
#user nobody;
worker_processes 4; #根据CPU线程来配置相关参数
error_log logs/error.log;
pid logs/nginx.pid;
worker_rlimit_nofile 65535;
events {
worker_connections 65535;
}
http {
include mime.types;
default_type application/octet-stream;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 8m;
sendfile on;
tcp_nopush on;
keepalive_timeout 150;
tcp_nodelay on;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
server_tokens off;
upstream tomcatweb {
server 172.19.0.135:8071;
server 172.19.0.135:8072;
}
server{
listen 80;
server_name www.test.com;
location / {
root html;
index index.html index.htm;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://tomcatweb;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
启动nginx
[root@tomcat135 nginx-1.2.8]# /usr/local/nginx/sbin/nginx
[root@tomcat135 nginx-1.2.8]# netstat -tunlp
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 10527/nginx
说明启动成功
测试是否成功
在IE浏览器访问http://172.19.0.135/
在/web/www/下增加
[root@tomcat135 www]# cat index.html
11111111111111111111111111成功
如果能访问到11111111111111111111111111成功
一切安装好了,你可以把项目上传到/web/www下
本文转自 jxzhfei 51CTO博客,原文链接:http://blog.51cto.com/jxzhfei/1441722