[Open Source] 负载均衡之Nginx
目录
简介
Nginx (“engine x”) 是一款轻量级,高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。
传输层的负载均衡有LVS(Linux) 和 NLB(Windows)
常用命令
nginx -v
// nginx 版本start nginx
// 启动nginx,不阻塞命令窗口nginx -s stop
|nginx -s quit
// 快速停止 | 有序退出nginx -s reload
// 加载配置重新启动
功能
代理
server { listen 8080; # 监听8080端口 resolver 114.114.114.114; # dns解析地址 location / { proxy_pass $scheme://$host$request_uri; # 代理到哪个地址 proxy_set_header Host $http_host; #allow 127.0.0.1; # 允许127.0.0.1地址访问 #deny all; # 禁止所有地址访问(allow位置在上面,所以127.0.0.1仍能访问) } }
反向代理
server { listen 8081; # 监听8080端口 server_name localhost; # 虚拟hostName location / { proxy_pass http://127.0.0.1:8081; # 反向代理到的服务器 } }
集群
HTTP集群
upstream clusterName { # 通过weight设置每台服务器分配请求站的权重,值越高分配的越多。 server 127.0.0.1:9000 weight=4; server 127.0.0.1:8082 weight=1; # ip_hash会计算ip对应hash值,然后分配到固定服务器 ip_hash; } location / { proxy_pass http://clusterName; # 反向代理到群集服务器 # 设置主机头和客户端真实地址,以便服务器获取客户端真实IP proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }
TCP集群
- 和http同级
stream { server { listen 1034; proxy_pass app; } upstream app { server 192.168.0.111:5672; server 192.168.0.112:5672; } }
重定向
location / { rewrite ^/(.*)$ http://www.xx.com/$1 permanent; }
- flag
- last – 基本上都用这个Flag。
- break – 中止Rewirte,不在继续匹配
- redirect – 返回临时重定向的HTTP状态302
- permanent – 返回永久重定向的HTTP状态301
静态文件
location /^(.*) { root html; # 根目录为html文件夹 index $1 index.html index.htm; # $1表示正则匹配第一项 }
绑定证书
# HTTPS server # server { listen 443 ssl; server_name localhost; ssl_certificate /nginx/server.cer; # 公钥(一般为公钥证书 + 中级证书) ssl_certificate_key /nginx/server.key; # 私钥 ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; ssl_prefer_server_ciphers on; }
常见问题
- 与IIS(80端口)冲突
- 被System占用
- 找到HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/HTTP下的Start修改其值为0,重启电脑即可
- 被IIS占用
- 停用IIS 80端口的网站
- 被System占用
- nginx群集
- 如果nginx服务器挂了,那我们的站点就直接挂了,可以通过keepalived组件来搭建多台nginx服务提供服务。
- error.log 错误日志:signal process started
- 并非错误,只要执行-s reload就会发出
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 如果觉得还有帮助的话,可以点一下右下角的【推荐】,希望能够持续的为大家带来好的技术文章!想跟我一起进步么?那就【关注】我吧。
原文地址:https://www.cnblogs.com/neverc/p/7027274.html
相关推荐
-
CsvHelper 中文文档 C#
2019-4-1
-
使用 Moq 测试.NET Core 应用 – Why Moq? C#
2019-4-15
-
ASP.NET Core API CORS C#
2019-4-3
-
C# 汉语转拼音 C#
2019-5-15
-
net core天马行空系列:降低net core门槛,数据库操作和http访问仅需写接口,实现类由框架动态生成 C#
2020-6-12
-
c#实现最简快速排序,你绝对可以看懂 C#
2019-5-14
-
Redis–Memched–Cache缓存介绍使用 C#
2019-8-15
-
Linq的妙用之筛选数据到字典 C#
2019-8-30
-
Robot Vision Segment C#
2019-8-30
-
BeetleX和Asp.net Core之webapi基础性能对比 C#
2019-5-12