1.下载安装:
http://how2j.cn/k/nginx/nginx-tutorial/1565.html
启动: start nginx
关闭: nginx -s stop
重启: nginx -s reload
2.设置端口为9090
.......
server {
listen 80; #端口号
server_name localhost;
location / {
root html; #表示页面都存放在nginx的html目录下
index index.html index.htm; #欢迎页面(root指定的目录下)
}
.......
}.......
修改后的访问地址: http://127.0.0.1:9090/
3.反向代理
比如要访问youtube,但是不能直接访问,只能先找个翻墙软件,通过翻墙软件才能访问youtube. 翻墙软件就叫做正向代理。所谓的反向代理,指的是用户要访问youtube,但是youtube悄悄地把这个请求交给bilibili来做,那么bilibili就是反向代理了。在通过地址访问nginx时,nginx把请求交给tomcat来做,即nginx的反向代理。http://how2j.cn/k/nginx/nginx-proxypass/1570.html
location / { #location / 表示处理所有请求
proxy_pass http://127.0.0.1:8111; #proxy_pass http://127.0.0.1:8111; 表示把请求都交给http://127.0.0.1:8111来处理
}
4.动静分离
动静分离就是指图片,css, js之类的都交给nginx来处理,nginx处理不了的,比如jsp 就交给tomcat来处理。好处是nginx处理静态内容的吞吐量很高,比tomcat高多了,这样无形中提升了性能。http://how2j.cn/k/nginx/nginx-seperate/1567.html
#在locaction下面添加一个新的location:
location ~\.(css|js|png)$ {
root C:/Users/X7TI/Downloads/tomcat_8111/webapps/ROOT; # 表示所有的css js png访问都由nginx来做
}
5,负载均衡
负载均衡的概念就是当访问量很大的时候,一个 Tomcat 吃不消了,这时候就准备多个 Tomcat,由Nginx按照权重来对请求进行分配,从而缓解单独一个Tomcat受到的压力.http://how2j.cn/k/nginx/nginx-balance/1568.html
upstream tomcat_8111_8222{ # 增加一个upstream ,用来指向这两个tomcat
server 127.0.0.1:8111 weight=1; #weight表示权重,值越大,被分配到的几率越大。
server 127.0.0.1:8222 weight=2;
}
server {
location / { #然后修改location,反向代理到上述配置。
proxy_pass http://tomcat_8111_8222;
}
......
}
6.ip_hash来解决负载均衡 session问题
通过ip地址标记用户,如果多次请求都是从同一个ip来的,那么就都分配到同一个tomcat
缺点:1. 大量请求来之某个局域网,那么相当于就没有负载均衡了 2. 如果tomcat_8111 挂了,那么此时nginx只能把请求交给tomcat_8222,但是这里却没有记录session,用户体验依然受影响。
upstream tomcat_8111_8222{
server 127.0.0.1:8111 weight=1;
server 127.0.0.1:8222 weight=2;
ip_hash;#通过ip地址标记用户,如果多次请求都是从同一个ip来的,那么就都分配到同一个tomcat.
}
7.redis来解决负载均衡 session问题
http://how2j.cn/k/nginx/nginx-share-session/1569.html
通过负载均衡课程,我们可以把请求分发到不同的 Tomcat 来缓解服务器的压力,但是这里存在一个问题: 当同一个用户第一次访问tomcat_8111 并且登录成功, 而第二次访问却被分配到了tomcat_8222, 这里并没有记录他的登陆状态,那么就会呈现未登录状态了,严重伤害了用户体验。
Redis说简单点就是个独立的Hashmap,用来存放键值对的。
用Redis来存取session,这样当tomcat1需要保存session值的时候,就可以把它放在Redis上,需要取的时候,也从Redis上取。
Redis session共享机制和nginx其实无关,是发生在nginx之后的事情,使用的是tomcat和redis之间的传输来完成的。
1.Tomcat-lib需要链接 redis, 一共有3个jar包:jedis-2.5.2.jar,commons-pool2-2.0.jar,tomcat-redis-session-manager1.2.jar。
2.修改tomcat/conf/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" />