您的位置:首页 > 运维架构 > 反向代理

Nginx反向代理到后端的tomcat上实现动静分离

2013-09-29 17:53 961 查看
实验环境centos6.4代理服务器:

外网地址 172.16.4.7

内网地址 192.168.4.11

静态内容服务器 192.168.10.13动态内容服务器 192.168.10.12 用户通过访问代理服务器的外网ip请求到后端服务器的资源,静态页面的通过192.168.10.13得到,动态页面通过192.168.10.12得到。

配置论坛服务器的ip地址

#ifconfig eth0 192.168.10.12/24

#route add default gw 192.168.10.254

apache-tomcat-7.0.42.tar.gzjdk-7u9-linux-x64.rpm

一、在后端服务器上安装 tomcat、jdk

1、安装jdk

#rmp -ivh jdk-7u9-linux-x64.rpm

# vim /etc/profile.d/java.sh

export JAVA_HOME=/usr/java/latest

export PATH=$JAVA_HOME/bin:$PATH

#. /etc/profile.d/java.sh

# java -version

java version "1.7.0_09"

Java(TM) SE Runtime Environment (build 1.7.0_09-b05)

Java HotSpot(TM) 64-Bit Server VM (build 23.5-b02, mixed mode)

2、安装部署tomcat

# tar xf apache-tomcat-7.0.42.tar.gz -C /usr/local/

# cd /usr/local/

# ln -sv apache-tomcat-7.0.42 tomcat

# vim /etc/profile.d/tomcat.sh

export CATALINA_HOME=/usr/local/tomcat

export PATH=$CATALINA_HOME/bin:$PATH

#. /etc/profile.d/tomcat.sh

3、为Tomcat提供SysV脚本

# vim /etc/init.d/tomcat

#!/bin/sh

# Tomcat init script for Linux.

#

# chkconfig: 2345 96 14

# description: The Apache Tomcat servlet/JSP container.

CATALINA_HOME=/usr/local/tomcat #注意你的脚本路径

export CATALINA_HOME

# export CATALINA_OPTS="-Xms128m -Xmx256m"

exec $CATALINA_HOME/bin/catalina.sh $*

#chmod +x /etc/init.d/tomcat

# chkconfig --add tomcat

就可以使用命令启动服务了

#service tomcat start

否则需要命令

# catalina.sh start

4、进行配置

# catalina.sh version查看版本

# catalina.sh configtest 检查错误之前要保证服务关闭状态

#cd tomcat/conf

#vim tomcat-users.xml 加用户

-->

<role rolename="manager-gui"/>

<role rolename="admin-gui"/>

<role rolename="tomcat" password="tomcat" roles="manager-gui,admin-gui"/>

# mkdir /tomcat/app1 -pv

# vim server.xml 配置文件

找到host添加

<Host name="www.test.com" appBase="/tomcat/app1"

unpackWARs="true" autoDeploy="true">

<Context path="/" docBase="/tomcat/app1" />

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"

prefix="test_access_log." suffix=".txt"

pattern="%h %l %u %t "%r" %s %b" />

</Host>

<Host name="localhost" appBase="webapps"

unpackWARs="true" autoDeploy="true">

修改默认主机为 <Engine name="Catalina" defaultHost="www.test.com">

#service tomcat stop

#service tomcat start

# jps

7334 Bootstrap

7355 Jps

5、安装并启动mysql服务

可以使用源码包编译安装或rpm包安装,这里我们使用系统自带的包

#yum -y install mysql-server

#service mysqld start

6、安装论坛程序

# unzip JspRun\!_6.0.0_GBK.zip

# mv upload/* /tomcat/app1

#service tomcat stop

#service tomcat start

在mysql中授权一个用户

mysql> grant all on jsprun.* to 'jspuser'@'localhost' identified by 'jspmypass';

mysql> flush privileges;

访问http://172.16.4.5/install.jsp 进入论坛安装界面,按照要求安装就可以进入论坛首页了

再次访问时172.16.4.5就可以进入论坛了

二、安装并配置nginx服务器

1、参考http://qidian510.blog.51cto.com/7319882/1297951

2、开启转发功能

#vim /etc/sysctl.conf

net.ipv4.ip_forward = 1 打开转发功能

#sysctl -p

#sysctl -a | grep ip_forward 验证确认开启转发

3、编辑配置文件

#cd /etc/nginx

#vim nginx.conf

server {

listen 80;

server_name localhost;

#charset koi8-r;

#access_log logs/host.access.log main;

location / {

#root html;

#index index.html index.htm;

proxy_pass http://192.168.10.12/;
}

4、启动服务

#service nginx start

Nginx服务器就可以代理后端的服务提供论坛了

在浏览器访问172.16.4.7





三、如果要实现动静分离该如何配置?

1、我们重新配置nginx的配置文件

#cd /etc/nginx

#vim nginx.conf

server {

listen 80;

server_name localhost;

#charset koi8-r;

#access_log logs/host.access.log main;

location / {

root html;

index index.html index.htm;

}

location ~*\.(jsp|do)$ {

proxy_pass http://192.168.10.12;
}

这样配置会使有的内容不能显示





2、需要再配置一台服务器提供论坛的静态内容

安装nginx

#yum install nginx -y

编辑配置文件

#cd /etc/nginx

#vim nginx.conf

server {

listen 80;

server_name localhost;

#charset koi8-r;

#access_log logs/host.access.log main;

location / {

root /web/html;

index index.html index.htm;

}

#mkdir /web/html -pv

3、下载并安装论坛程序

# unzip JspRun\!_6.0.0_GBK.zip

# mv upload/* /web/html/

#service nginx start

然后调整ip地址为 192.168.10.13

#ifconfig eth0 192.168.10.13/24

#route add default gw 192.168.10.254

4、回到转发服务器配置

#cd /etc/nginx

#vim nginx.conf

添加静态转发的服务器

server {

listen 80;

server_name localhost;

#charset koi8-r;

#access_log logs/host.access.log main;

index index.jsp;

location / {

root html;

index index.html index.htm;

}

location ~* \.(jpg|png|js|jpeg|gif|htm|html) {

proxy_pass http://192.168.10.13;
}

location ~* \.(jsp|do|css)$ {

proxy_pass http://192.168.10.12;
}

5、重新加载并进行测试

#service nginx reload

访问http://172.16.4.7/index.jsp

至此,就可以实现动静分离了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息