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

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介:

实验环境

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.gz

jdk-7u9-linux-x64.rpm




一、在后端服务器上安装 tomcatjdk




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




3Tomcat提供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 = 打开转发功能


#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


174644679.png






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




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;



}



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


174724129.png




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



至此,就可以实现动静分离了。




本文转自 宋鹏超 51CTO博客,原文链接:http://blog.51cto.com/qidian510/1303550,如需转载请自行联系原作者
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
运维 前端开发 应用服务中间件
LNMP详解(八)——Nginx动静分离实战配置
LNMP详解(八)——Nginx动静分离实战配置
30 0
|
3月前
|
缓存 前端开发 JavaScript
tomcat核心技术+Nginx性能调优技术
而Tomcat的基本配置,每个配置项也基本上对应了Tomcat的组件结构,如果要用一张图来形象展现一下Tomcat组成的话
39 1
|
3月前
|
Java 应用服务中间件 Apache
简介Nginx,Tomcat和 Apache
简介Nginx,Tomcat和 Apache
简介Nginx,Tomcat和 Apache
|
1月前
|
负载均衡 应用服务中间件 API
Nginx配置文件详解Nginx负载均衡Nginx静态配置Nginx反向代理
Nginx配置文件详解Nginx负载均衡Nginx静态配置Nginx反向代理
44 4
|
1月前
|
运维 前端开发 应用服务中间件
LNMP详解(八)——Nginx动静分离实战配置
LNMP详解(八)——Nginx动静分离实战配置
21 1
|
13天前
|
运维 Java 应用服务中间件
Nginx+Tomcat动静分离及Nginx优化(企业案例)
Nginx+Tomcat动静分离及Nginx优化(企业案例)
|
28天前
|
应用服务中间件 nginx
nginx进行反向代理的配置
在Nginx中设置反向代理的步骤:编辑`/etc/nginx/nginx.conf`,在http段加入配置,创建一个监听80端口、服务器名为example.com的虚拟主机。通过`location /`将请求代理到本地3000端口,并设置代理头。保存配置后,使用`sudo nginx -s reload`重载服务。完成配置,通过example.com访问代理服务器。
27 0
|
2月前
|
负载均衡 应用服务中间件 Linux
|
3月前
|
tengine Rust 负载均衡
反向代理学习笔记(一) Nginx与反向代理绪论
反向代理学习笔记(一) Nginx与反向代理绪论
|
3月前
|
负载均衡 Java 应用服务中间件