原文参考:https://blog.csdn.net/zy1471162851/article/details/91795712
tip: nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器
nginx 的应用场景 (
http服务器,可以做网页静态服务器;
虚拟主机;
反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。)
windows常用命令
nginx.exe -s stop –停止
nginx优缺点
占内存小,可以实现高并发连接、处理响应快。
可以实现http服务器、虚拟主机、反向代理、负载均衡。
nginx配置简单
可以不暴露真实服务器IP地址
一:反向代理
反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
启动一个Tomcat 127.0.0.1:8080
使用nginx反向代理 8080.zyhome.com 直接跳转到127.0.0.1:8080
Host文件新增
127.0.0.1 8080.sea.com
127.0.0.1 8081.shan.com
nginx.conf 配置:
server { listen 80; server_name 8080.sea.com; location / { proxy_pass http://127.0.0.1:8080; index index.html index.htm; } } server { listen 80; server_name 8081.shan.com; location / { proxy_pass http://127.0.0.1:8081; index index.html index.htm; } }
二:负载均衡:
轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 upstream backserver { server 192.168.0.14; server 192.168.0.15; } 2、指定权重 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 upstream backserver { server 192.168.0.14 weight=10; server 192.168.0.15 weight=10; } 3、IP绑定 ip_hash 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。 upstream backserver { ip_hash; server 192.168.0.14:88; server 192.168.0.15:80; } 4、fair(第三方) 按后端服务器的响应时间来分配请求,响应时间短的优先分配。 upstream backserver { server server1; server server2; fair; } 5、url_hash(第三方) 按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。 upstream backserver { server squid1:3128; server squid2:3128; hash $request_uri; hash_method crc32; }
配置代码:
upstream backserver
{ server 127.0.0.1:8080; server 127.0.0.1:8081; } server { listen 80; server_name www.zyhome.com; location / { proxy_pass http://backserver; index index.html index.htm; } }
宕机轮训配置规则
upstream backserver { server 127.0.0.1:8080; server 127.0.0.1:8081; }
server { listen 80; server_name www.sea.com; location / { proxy_pass http://backserver; index index.html index.htm; proxy_connect_timeout 1; proxy_send_timeout 1; proxy_read_timeout 1; } }
三:配置DDOS
限制请求次数
设置Nginx、Nginx Plus的连接请求在一个真实用户请求的合理范围内。比如,如果你觉得一个正常用户每两秒可以请求一次登录页面,你就可以设置Nginx每两秒钟接收一个客户端IP的请求(大约等同于每分钟个请求)。
limit_req_zone $binary_remote_addr zone=one:10m rate=2r/s;
server {
...
location /login.html {
limit_req zone=one;
...
}
}
`limit_req_zone`命令设置了一个叫one的共享内存区来存储请求状态的特定键值,在上面的例子中是客户端IP($binary_remote_addr)。location块中的`limit_req`通过引用one共享内存区来实现限制访问/login.html的目的。
原文链接:https://blog.csdn.net/zy1471162851/article/details/91795712