Nginx入门
- Nginx入门
- Nginx配置文件
- Nginx代理
- 正向代理
- 反向代理
- 修改nginx.conf
- 动静分离
- 概念
- 修改nginx.conf
- 负载均衡
- 概念
- 修改nginx.conf
- 负载均衡 session问题
- 解决办法: redis+tomcat-sessoin-manager
- 修改context.xml(增加字段)
- 问题解决
- nginx安装包路径中不能含有中文
Nginx入门
Nginx配置文件
Nginx代理
正向代理
比如要访问youtube,但是不能直接访问,只能先找个FQ软件,通过FQ软件(也就是代理服务器)才能访问youtube. FQ软件就叫做正向代理。
反向代理
指的是用户要访问youtube,但是youtube悄悄地把这个请求交给bilibili来做,那么bilibili就是反向代理了。
在当前教程指的就是你要访问nginx,但是nginx把请求交给tomcat来做。
修改nginx.conf
location /
表示处理所有请求
proxy_pass http://127.0.0.1:8111;
表示把请求都交给http://127.0.0.1:8111来处理
动静分离
概念
nginx处理静态文件的吞吐量能力比tomcat好很多。
所以通常将nginx和tomcat配合使用,把静态请求(比如css, js之类)交给nginx,动态请求(比如jsp, servlet,ssm, struts等请求)交给tomcat,从而达到动静分离的效果,这样无形中提升了性能。
修改nginx.conf
在locaction下面添加一个新的location,表示所有的css js png访问都由nginx来做(要注意,填写本地地址的时候,要用正斜杠 / 不要用反斜杠 \):
location ~\.(css|js|png)$ {
root E:/test/tomcat_8111/webapps/ROOT;
}
负载均衡
概念
访问量很大的时候,一个 Tomcat 吃不消了,这时候就需要准备多个 Tomcat。由Nginx按照权重来对请求进行分配,从而缓解单独一个Tomcat受到的压力
weight表示权重,值越大,被分配到的几率越大。
修改nginx.conf
upstream tomcat_8111_8222{
server 127.0.0.1:8111 weight=1;
server 127.0.0.1:8222 weight=2;
}
location / {
proxy_pass http://tomcat_8111_8222;
}
负载均衡 session问题
通过负载均衡,我们可以把请求分发到不同的 Tomcat 来缓解服务器的压力。但是这里存在一个问题: 当同一个用户第一次访问tomcat_8111 并且登录成功, 而第二次访问却被分配到了tomcat_8222, 这里并没有记录他的登陆状态,那么就会呈现未登录状态了,严重伤害了用户体验。
解决办法: redis+tomcat-sessoin-manager
安装redis.exe,启动redis
Tomcat需要连接 redis,所以需要专门的jar包,放在tomat8111的lib目录下。
jedis-2.5.2.jar,
commons-pool2-2.0.jar,
tomcat-redis-session-manager1.2.jar。
修改context.xml(增加字段)
问题解决
nginx安装包路径中不能含有中文
nginx: [emerg] CreateFile() "E:\Myfile\nginx和tomcat\nginx/conf/nginx.conf" failed (1113: No mapping for the Unicode character exists in the target multi-byte code page)
修改路径即可