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

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介:

实验环境

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,如需转载请自行联系原作者
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
8月前
|
Java 关系型数据库 MySQL
在Linux平台上进行JDK、Tomcat、MySQL的安装并部署后端项目
现在,你可以通过访问http://Your_IP:Tomcat_Port/Your_Project访问你的项目了。如果一切顺利,你将看到那绚烂的胜利之光照耀在你的项目之上!
447 41
|
8月前
|
开发框架 Java 关系型数据库
在Linux系统中安装JDK、Tomcat、MySQL以及部署J2EE后端接口
校验时,浏览器输入:http://[your_server_IP]:8080/myapp。如果你看到你的应用的欢迎页面,恭喜你,一切都已就绪。
567 17
|
8月前
|
Java 关系型数据库 MySQL
在Linux操作系统上设置JDK、Tomcat、MySQL以及J2EE后端接口的部署步骤
让我们总结一下,给你的Linux操作系统装备上最强的军队,需要先后装备好JDK的弓箭,布置好Tomcat的阵地,再把MySQL的物资原料准备好,最后部署好J2EE攻城车,那就准备好进军吧,你的Linux军团,无人可挡!
184 18
|
8月前
|
关系型数据库 MySQL Java
安装和配置JDK、Tomcat、MySQL环境,以及如何在Linux下更改后端端口。
遵循这些步骤,你可以顺利完成JDK、Tomcat、MySQL环境的安装和配置,并在Linux下更改后端端口。祝你顺利!
513 11
|
8月前
|
负载均衡 前端开发 应用服务中间件
Tomcat的负载均衡和动静分离(与nginx联动)
总的来说,负载均衡和动静分离是提高Web应用性能的两个重要手段。通过合理的配置和使用,我们可以让Web应用更好地服务于用户。
261 21
|
8月前
|
负载均衡 Java 应用服务中间件
Tomcat与Nginx的负载均衡与动静分离技巧
总的来说,Tomcat和Nginx各有各的优点,在负载均衡和动静分离这两方面它们都有很好的应用。灵活使用这两个工具能够让Web应用具有更好的扩展性和用户体验。
250 14
|
8月前
|
开发框架 关系型数据库 Java
Linux操作系统中JDK、Tomcat、MySQL的完整安装流程以及J2EE后端接口的部署
然后Tomcat会自动将其解压成一个名为ROOT的文件夹。重启Tomcat,让新“植物”适应新环境。访问http://localhost:8080/yourproject看到你的项目页面,说明“植物”种植成功。
260 10
|
安全 Java 应用服务中间件
Tomcat弱口令+后端getshell漏洞
Tomcat弱口令+后端getshell漏洞
402 6
|
应用服务中间件 nginx
Nginx Location 深入剖析及动静分离简易配置
Nginx Location 深入剖析及动静分离简易配置
236 3
|
Ubuntu 前端开发 JavaScript
技术笔记:Ubuntu:一个部署好的tomcat应用(war包)怎么用Nginx实现动静分离?
技术笔记:Ubuntu:一个部署好的tomcat应用(war包)怎么用Nginx实现动静分离?