一个高性能的HTTP和反向代理web服务器
特点
1、高并发(支持5万甚至更多的并发)
2、内存消耗小
3、可以做HTTP的反向代理,可以完成负载均衡
4、Nginx启动了安全检查,某一台配置服务器宕机,自动剔除,不影响访问
5、通过cache插件,可以完成缓存操作
6、动静分离(懂的人自然懂)
反向代理
使用代理服务器来接收客户端的请求(如nginx代理多个tomcat,有了代理就可以轻松实现负载均衡了,这种代理的情况是,请求端并不知道我找的是谁)
负载均衡
upstream支持的算法:
1、轮询:按时间均匀分布到不同的服务器。
2、权重:能者多劳(指定轮询的占比次数)。
3、ip_hash算法:根据每个访问ip_hash值来进行分配。
动静分离
在此案例中则是nginx为静,多个tomcat为动,只要是静态资源则可以放到nginx下,加快访问速度。
关于配置
模拟多开tomcat(如果你是多服务器,跳过此处)
因为我是在一个服务器tomcat的多开,所以不能用同一个端口,先复制一份tomcat
然后修改conf/server.xml(改三个地方)
<Server port="18005" shutdown="SHUTDOWN"> //把原来的8005改成18005,改成其他也行
<Connector connectionTimeout="20000" port="8081" protocol="HTTP/1.1"
redirectPort="8443" /> //把8080改成8081,这里是端口号
<Connector port="18009" protocol="AJP/1.3" redirectPort="8443" /> /把原来的8009改成18009,改成其他也行
在conf/nginx.conf中也进行修改
upstream mytomcats { //自定义代理的端口
server 127.0.0.1:8080;
server 127.0.0.1:8081;
}
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
proxy_pass http://mytomcats; //主要是加上这句,实现代理
}
...
权重(轮询基础上加权)
server 127.0.0.1:8080 weight 3;
server 127.0.0.1:8080 weight 1;
ip_hash(一个ip只能代理连接到同一个服务器)
upstream mytomcats {
ip_hash;
server 127.0.0.1:8080;
server 127.0.0.1:8081;
}