简单nginx反向代理+双tomcat多域名 server搭建
我在想要不要写成两篇,一篇是nginx反向代理,一篇是tomcat多域名,这样显得我的博文好多
言归正传:
Device:IBM x3650 M3 raid-1
OS:CentOS release 5.8 (Final) x64
Nginx: nginx-1.2.0.tar.gz
Tomcat: apache-tomcat-6.0.35.zip
Jdk: jdk-6u32-linux-amd64.rpm.bin
文件默认存放目录为/evan
软件安装目录为/usr/local
需求组件:暂无详细,OS安装时选择安装所有开发工具,避免出现组件缺失
安装步骤
一 JDK安装
1cd /evan
2 chmod 755 jdk-6u32-linux-amd64.rpm.bin
3 ./jdk-6u26-linux-i586-rpm.bin
4 rpm -ivh jdk-6u26-linux-i586.rpm
5 vi /etc/profile
添加以下语句至文件末尾后保存退出
export JAVA_HOME=/usr/java/jdk1.6.0_32
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
6 source /etc/profile
二 tomcat1安装配置
端口为8080,web目录为/usr/local/web
1 cd /evan
2 tar xzvf apache-tomcat-6.0.35.zip
3 mv apache-tomcat-6.0.35 /usr/local/tomcat1
4 cp /usr/local/tomcat1 /usr/local/tomcat2
5 chmod 755 /usr/local/tomcat1/bin/*;
6 /usr/local/tomcat1/bin/startup.sh; 若出错,则调试命令为:/usr/local/tomcat1/bin/catalina.sh run
7 netstat –antop |grep 8080 或 ps aux | grep tomcat 以判断tomcat是否启动成功 前者通过端口(是否打开)判断,后者通过进程(是否存在)判断
8 vi /usr/local/tomcat1/conf/server.xml
添加以下文件至#<Host name…>下后保存退出
<Host name="test1.evan.com" appBase="/usr/local/web/test1"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="." reloadable="true" debug="0"/>
</Host>
<Host name="test2.evan.com" appBase="/usr/local/web/test2"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="." reloadable="true" debug="0"/>
</Host>
9 /usr/local/tomcat1/bin/shutdown.sh;/usr/local/tomcat1/bin/startup.sh 重启
10 本地添加DNS指向,使用浏览器访问http://test.evan.com:8080 测试
三 tomcat2安装配置
1 vi /etc/profile
添加以下语句写入至文件末尾后保存退出
export CATALINA_HOME2=/usr/local/tomcat2
export CATALINA_BASE=/usr/local/tomcat2
2 source /etc/profile
3 vi /usr/local/tomcat2/bin/catalina.sh
添加以下语句至文件开始后保存退出
export CATALINA_HOME=$CATALINA_HOME2;
export CATALINA_BASE=$CATALINA_BASE2;
4 vi /usr/local/tomcat2/conf/server.xml
修改以下语句中的端口以不至与tomcat1冲突后保存退出
4.1 <Server port="9005" shutdown="SHUTDOWN"> 修改8005为9005
4.2 <Connector port="81" protocol="HTTP/1.1" 修改8080为81
4.3 <Connector port="9009" protocol="AJP/1.3" redirectPort="8443" /> 修改8009为9009
5 /usr/local/tomcat1/bin/startup.sh; 若出错,则调试命令为:/usr/local/tomcat1/bin/catalina.sh run
6 netstat –antop |grep 8080 或 使用浏览器访问http://$ip:81 以判断tomcat2是否启动成功
四 nginx安装配置
1 yum –y install pcre-devel-6.6-2.el5_1.7.i386.rpm
2 cd /evan
3 tar xzvf nginx-1.2.0.tar.gz
4 cd nginx-1.2.0
5 ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module && make && make install
6 /usr/local/nginx/sbin/nginx 启动
7 测试netstat –antop |grep 80 或 使用浏览器访问http://$ip以判断tomcat2是否启动成功
8 vi /usr/local/nginx/conf/nginx.conf
以下为nginx.conf配置
worker_processes 8; nginx 进程数,建议按照cpu 数目来指定,一般为它的倍数。 error_log /log/error.log; 日志Log events { use epoll; 使用epoll 的I/O 模型 worker_connections 1024; 每个进程允许的最多连接数 } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; keepalive 超时时间。 client_header_buffer_size 4k; gzip on; upstream tomcats_crm { server 127.0.0.1:8080 weight=8; 指定反向代理 } server { listen 80; 指定监听端口 index index.html index.htm index.jsp server_name test1.evan.com; location / { root /usr/local/web/ROOT/test1; 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://127.0.0.1:8080; } location ~* \.(jpg|jpeg|gif|png|swf)$ { 指定这些文件类型代理 root /usr/local/web/ROOT/evan; expires 1d; break; } }
} |
9 重启:pkill nginx;/usr/local/nginx/sbin/nginx; 调试命令为/usr/local/nginx/sbin/nginx –t
10 测试 访问http://test.evan.com