Nginx 动静分离(代理Tomcat,Jetty)
来源:互联网 发布:cg织梦 编辑:程序博客网 时间:2024/05/16 11:17
Nginx 实现动静分离
Nginx是一款很强大的前端HTTP服务器,具有很优秀的并发性,在生产环境中搭配其他后端服务器使用,代理转发http请求给其他的后端服务器,同时具有高效的静态处理能力,可以用于均衡静态处理能力不是很高效的后端服务器的负载压力;
在典型的部署JavaWeb应用的时候,常常会用Nginx+Tomcat/Jetty/Jboss的组合,nginx来作为前端服务器抗并发(nginx比apache httpd的并发负载更加强大,而且配置方便),Tomcat/Jetty/Jboss作为Servlet容器,他们在处理静态文件效率上,远不如 nginx;
一般由nginx处理并发的http请求,如果该请求返回的响应是静态文件(html,htm,css,js,图片等),则直接由nginx处理,如果是动态文件(jsp,jspx,do,wsdl)等,则将该请求转发给Servlet容器Tomcat、Jetty等进行处理;
以Nginx+Tomcat实现动静分离为例,以下是一个简单的配置步骤:
示例说明:
nginx根目录为/nginx,端口为80,tomcat根目录为/tomcat,端口为8080;
nginx代理的请求域名"www.assad.site";
绑定的Tomcat的web app根目录为/tomcat/webapps/testapp;
Tomcat和nginx位于同一个服务器上;
1)Nginx配置
vim 修改 /nginx/conf/nginx.conf,引入所有vhost的配置信息,类似如下;
1
http{
2
......
3
include vhost/*.conf;
4
}
在 /nginx/conf/vhsot/ 下创建一个文件 test.assad.site.conf,并编辑文本:
1
upstream testapp { #设置一个upstream
2
server 127.0.0.1:8080;
3
}
4
server {
5
listen 80; #监听的系统端口
6
server_name www.assad.site; #代理转发的原始URL
7
charset utf-8; #字符编码
8
9
root /tomcat/webapps/testapp; # 相应webapp的根目录
10
index index.html index.htm index.jsp #起始页
11
12
error_page 404 /errpage/404.html; # http错误页路径
13
error_page 500 502 503 504 /errpage/50x.html;
14
15
location ~ \.(jsp|jspx|do|wsdl)$ { #动态请求由tomcat处理
16
proxy_pass http://testapp; #代理转发到upstream,
17
proxy_set_header Host $http_host;
18
proxy_set_header X-Real-IP $remote_addr;
19
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
20
21
}
22
location ~ \.(html|htm|js|htm|png|gif|jpg|jpeg)$ { #静态请求由nginx处理
23
root /tomcat/webapps/testapp; #指定静态请求的根目录
24
}
25
26
}
27
2)Tomcat配置
在 Tomcat 的 server.xml 中的 Server/Service/Engine/ 节点下,添加以下<Host>节点:
1
<Host name="www.assad.site" appBase="/tomcat/webapps/testapp" unpackWARs="true" autoDeploy="true">
2
<Context path="" docBase="/tomcat/webapps/testapp" debug="0" reloadable="true" />
3
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
4
prefix="localhost_access_log." suffix=".txt"
5
pattern="%h %l %u %t "%r" %s %b" />
6
</Host>
3)重启Tomcat,Nginx服务
之后便可以直接通过 http://www.assad.site 访问testapp了(代理前是使用 http://主机IP:8080/testapp 访问)
注意:
※ 以上步骤完成后,如果访问域名返回403页面,很有可能是nginx没有访问/tomcat/webapps/testapp的权限,此时只要将该目录添加到nginx所在用户就好(nginx一般归属www www用户中),详见:http://blog.csdn.net/al_assad/article/details/76562355;
阅读全文
0 0
- Nginx 动静分离(代理Tomcat,Jetty)
- Tomcat(二):Nginx反向代理实现Tomcat动静分离
- nginx、tomcat实现动静分离,反向代理
- nginx反向代理tomcat实现动静分离
- Nginx + Tomcat 动静分离
- nginx+tomcat动静分离
- nginx +tomcat 动静分离
- Tomcat+nginx 动静分离
- nginx+tomcat 动静分离
- nginx负载均衡/反向代理+tomcat动静分离
- Nginx+Tomcat实现反向代理与动静分离
- Nginx+Tomcat实现反向代理与动静分离
- Nginx+Tomcat实现反向代理及动静分离
- nginx+tomcat实现动静分离
- Nginx+Tomcat实现动静分离
- Nginx+Tomcat实现动静分离
- nginx+tomcat实现动静分离
- Nginx + Tomcat 实现动静分离
- 【P&S】向MySQL中导入CSV文件
- Android之使用Messenger进行IPC
- CSU-ACM2017暑期训练7-模拟&&贪心 F
- 进程间通信---Socket
- C++ Windows Server 2016上修改注册表IIS10.0降级安装PHPManager
- Nginx 动静分离(代理Tomcat,Jetty)
- Python基础(3)——北京市地铁买票问题(思维练习题)
- xshell远程连接Ubuntu配置
- 小结 | 指针、数组和指针@_@
- JavaScript-数组的方法
- 两个文件的相对路径
- UCOSii任务就绪表之OSUnMapTbl[16*16]的数组是如何得到的
- hdu 6060 RXD and dividing (贪心)
- Tensorflow学习笔记(4)-mnist(MultilayerConvolutionalNetwork)