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(增加字段)

 <Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />  

  <Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"  
   host="127.0.0.1"  
   port="6379"  
   database="0"  
   maxInactiveInterval="60" /> 

问题解决

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)

修改路径即可

posted @ 2019-12-14 20:06  海韵༒听心  阅读(375)  评论(4编辑  收藏  举报