去年8月写的,凑合着看吧
Nginx是一个高性能的HTTP和反向代理服务器
特点:占用内存少,并发能力强,能够支持高达5万个并发连接数的响应。
正向代理:多个客户端访问一个代理
反向代理:一个代理访问多个服务器
轮询:每个服务器的权重是一样的,请求均匀地打在每个服务器上。比如有9个请求,3个服务器。服务器a:1 4 7请求 服务器b:2 5 8请求 服务器c:3 6 9请求
加权轮询:服务器的权重是不一样的,请求不均匀地打在服务器上。比如有9个请求,3个服务器。服务器a:1 3请求 服务器b:2 4 7请求 服务器c:5 6 8 9请求
iphash:假设本来有n个Tomcat,就有n个Session,这些Session是不共享的。所以说,有了iphash,可以对客户请求的ip进行hash操作,固定的ip打在固定的服务器上,所以对于同一个客户端来说,
使用的session是同一个。但是还是有一个bug,假设一个服务器挂了,那么它里面数据也就丢失了。所以,我们一般还是使用Redis做共享Session。
动静分离:项目中的静态资源,可以直接从nginx中返回,不需要从项目中拿。
Nginx常用命令:
cd /usr/local/nginx/sbin/
./nginx 启动
./nginx -s stop 停止
./nginx -s quit 安全退出
./nginx -s reload 重新加载配置文件
ps aux|grep nginx 查看nginx进程
Nginx实战:
用nginx去代理8080和8081服务器。而且8081服务器上的请求是8080的2倍。(配置文件修改了之后,要重启配置文件才会生效)
打开nginx的conf/nginx.conf。
nginx.conf文件内容:
#全局配置
events{
最大连接数和监听的事件
}
http{
#http的全局配置
upstream kuangstudy{
//负载均衡配置
server 127.0.0.1:8080 weight=1; //weight是权重
server 127.0.0.1:8081 weight=2; //这两个weight指的是比例,有4个请求,1个会进8080,2个会进8081
}
//假设访问的是www.kuangstudy.com网站
(http里面可以有多个server)
server{
listen 80; //80是端口号
server_name localhost;
//代理
//默认是80端口,就会进入下面这个代理
location /{
proxy_pass http://kuangstudy;
}
//假设要访问www.kuangstudy.com/admin请求,就就会代理到下面的服务器上
location /admin{
//xxxx
}
}
server{
listen 443;
server_name localhost;
//代理
}
}