ngnix
Windows环境下安装Nginx
解压:nginx-windows
双击: nginx.exe
在widow下面一闪而过,可以查看启动日志:在logs文件夹下面查看error.log里面的信息,当出现pid时,说明启动成功:
127.0.0.1
能看到nginx欢迎界面说明,nginx安装成功
演示下 nginx做静态服务器
默认读取的是 html文件夹中的 index.html文件,修改iniex.html文件之后,不用重启nginx.
停止: nginx.exe -s stop –停止
nginx优缺点
占内存小,可以实现高并发连接、处理响应快。
可以实现http服务器、虚拟主机、反向代理、负载均衡。
nginx配置简单
可以不暴露真实服务器IP地址
nginx.conf
其中一个 server 代表一个http服务。
负载均衡策略:
1、轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器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; }
配置代码:
upstream backserver { server 127.0.0.1:8080; server 127.0.0.1:8081; } server { listen 80; server_name www.itmayiedu.com; location / { proxy_pass http://backserver; index index.html index.htm; } }
宕机轮询配置规则
单位:秒 。配置响应时间,如果在规定的时间没有响应,则轮训到下一个节点。
如果全部宕机,可以使用第三方技术,在CPU或者内存过剩时,进行邮件或者短信提醒。实现高可用。
server { listen 80; server_name www.itmayiedu.com; location / { proxy_pass http://backserver; index index.html index.htm; proxy_connect_timeout 1; proxy_send_timeout 1; proxy_read_timeout 1; } }
nginx解决网站跨域问题
即:使用nginx搭建网管接口系统。 实现session共享问题。
跨域: 域名或者端口不相同时,则存在跨域问题。
server { listen 80; server_name www.itmayiedu.com; location /A { proxy_pass http://a.a.com:81/A; index index.html index.htm; } location /B { proxy_pass http://b.b.com:81/B; index index.html index.htm; } }
nginx配置防盗链
location ~ .*\.(jpg|jpeg|JPG|png|gif|icon)$ { valid_referers blocked http://www.itmayiedu.com www.itmayiedu.com; if ($invalid_referer) { return 403; } }
nginx配置DDOS: 模拟请求
限制请求速度:
设置Nginx、Nginx Plus的连接请求在一个真实用户请求的合理范围内。比如,如果你觉得一个正常用户每两秒可以请求一次登录页面,你就可以设置Nginx每两秒钟接收一个客户端IP的请求(大约等同于每分钟30个请求)。
limit_req_zone $binary_remote_addr zone=one:10m rate=30r/m; server { ... location /login.html { limit_req zone=one; ... } }
`limit_req_zone`命令设置了一个叫one的共享内存区来存储请求状态的特定键值,在上面的例子中是客户端IP($binary_remote_addr)。location块中的`limit_req`通过引用one共享内存区来实现限制访问/login.html的目的。