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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
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=JAVAHOME/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=CATALINAHOME/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 CATALINAHOME/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,如需转载请自行联系原作者
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
265
分享
相关文章
配置Nginx反向代理时如何指定后端服务器的权重?
配置Nginx反向代理时如何指定后端服务器的权重?
301 61
nginx的正向代理和反向代理以及tomcat
Nginx的正向代理和反向代理功能在不同的场景中具有重要作用,正向代理主要用于客户端访问控制和匿名浏览,而反向代理则用于负载均衡和高可用性服务。Tomcat作为Java Web应用服务器,与Nginx结合使用,可以显著提升Web应用的性能和稳定性。通过合理配置Nginx和Tomcat,可以构建高效、稳定和可扩展的Web服务架构。
248 11
Nginx Location 深入剖析及动静分离简易配置
Nginx Location 深入剖析及动静分离简易配置
113 3
技术笔记:Ubuntu:一个部署好的tomcat应用(war包)怎么用Nginx实现动静分离?
技术笔记:Ubuntu:一个部署好的tomcat应用(war包)怎么用Nginx实现动静分离?
Django后端架构开发:Nginx服务优化实践
Django后端架构开发:Nginx服务优化实践
146 2
揭秘!nginx的神秘力量——如何单枪匹马驾驭Linux中的流量洪流与后端军团?
【8月更文挑战第20天】在Linux环境下,Nginx是一款高效HTTP与反向代理服务器,还具备负载均衡功能。本文采用问答形式解析Nginx的反向代理机制:接收并转发客户端请求至后端服务器,增强安全性和性能。示例配置展示了如何设置上游服务器与代理传递规则。同时介绍了Nginx负载均衡原理及配置,利用upstream模块与不同调度算法(如轮询、最少连接、IP哈希)分发请求,提升系统可靠性和处理能力。
83 2
(三)Nginx一网打尽:动静分离、压缩、缓存、黑白名单、跨域、高可用、性能优化...想要的这都有!
早期的业务都是基于单体节点部署,由于前期访问流量不大,因此单体结构也可满足需求,但随着业务增长,流量也越来越大,那么最终单台服务器受到的访问压力也会逐步增高。时间一长,单台服务器性能无法跟上业务增长,就会造成线上频繁宕机的现象发生,最终导致系统瘫痪无法继续处理用户的请求。
245 1
网页设计,若依项目修改(It must be done)01----若依打包位置,nginx代理前端静态资源和后端接口,就是怎样设置转载,访问固定端口,让他访问其他资料的配置文件,访问/,给你那些
网页设计,若依项目修改(It must be done)01----若依打包位置,nginx代理前端静态资源和后端接口,就是怎样设置转载,访问固定端口,让他访问其他资料的配置文件,访问/,给你那些
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等