前言

Nginx做的代理后面SpringBoot的项目,1N3T的架构,Tomcat的配置也进行了相应的调优。

配置

这里主要来简单的说下Nginx的端口负载均衡,具体的大家可以参考

Nginx文档 | Nginx 烹调书(Nginx Cookbook 中文版) | Nginx文档PLUS

upstream是nignx分配方式,默认是轮询

1. 轮询: 轮询是upstream的默认分配方式,即每个请求按照时间顺序轮流分配到不同的后端服务器。
2. weight: 按着权重的大小进行轮询。
3. ip_hash: 每个请求按照访问ip的hash结果分配,这样每个访客会固定访问一个后端服务器,可以解决session一致问题。
4. fair: 可以根据页面大小、加载时间长短智能的进行负载均衡,响应时间短的后端服务器优先分配请求。
5. url_hash: 与ip_hash类似,但是按照访问url的hash结果来分配请求,使得每个url定向到同一个后端服务器,主要应用于后端服务器为缓存时的场景下。
6. least_conn: 把请求转发给连接数较少的后端服务器

轮询

# max_fails=2 fail_timeout=30s 代表在30秒内请求某一应用失败2次,认为该应用宕机,等待30秒再次请求

upstream pool {
server 192.168.10.1:6001 weight=10 max_fails=2 fail_timeout=30s;
server 192.168.10.1:51001 weight=10 max_fails=2 fail_timeout=30s;
server 192.168.10.1:6005 weight=10 max_fails=2 fail_timeout=30s;
server 192.168.10.1:6004 weight=10 max_fails=2 fail_timeout=30s;
}

ip_hash

upstream pool {
ip_hash;
server 192.168.10.1:6001 weight=10 max_fails=2 fail_timeout=30s;
server 192.168.10.1:51001 weight=10 max_fails=2 fail_timeout=30s;
server 192.168.10.1:6005 weight=10 max_fails=2 fail_timeout=30s;
server 192.168.10.1:6004 weight=10 max_fails=2 fail_timeout=30s;
}

完整配置

我这边是虚拟主机的,所以直接配置对应的虚拟主机的配置就好了,完整配置如下

# 负载的地址池
upstream pool {
ip_hash;
server 192.168.10.1:6001 weight=10 max_fails=2 fail_timeout=30s;
server 192.168.10.1:51001 weight=10 max_fails=2 fail_timeout=30s;
server 192.168.10.1:6005 weight=10 max_fails=2 fail_timeout=30s;
server 192.168.10.1:6004 weight=10 max_fails=2 fail_timeout=30s;
} server
{
listen 80;
listen 443 ssl; server_name app.xxxx.net;
index index.html index.htm index.php default.html default.htm default.php;
underscores_in_headers on;
root /usr/local/nginx/conf/html;
ssl_certificate /cert/app.xxxx.net.pem;
ssl_certificate_key /cert/app.xxxx.net.key;
ssl_session_timeout 5m;
ssl_ciphers xxxxxxxxxxxxxxxx;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on; location / {
proxy_set_header Host $host:80;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header x-forwarded-for $remote_addr;
#地址池名称pool
proxy_pass http://pool;
} location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
#地址池名称pool
proxy_pass http://pool;
expires 30d;
} location ~ .*\.(js|css)?$ {
#地址池名称pool
proxy_pass http://pool;
expires 12h;
} access_log /home/wwwlogs/app.xxxx.net.log;
}

pool是自己命名的一个变量,你可以命名为别的值

Nginx端口负载均衡就是这么的简单,但是不要忘记reload一下哦~

最新文章

  1. 基于Metronic的Bootstrap开发框架经验总结(10)--优化Bootstrap图标管理
  2. Asp.net MVC Comet推送
  3. BZOJ3687 计算子集和的异或和
  4. 在.NET下使用C# 控制Windows系统音量
  5. 解决ScrollView与ListView事件冲突
  6. 清除PDF里的元数据和机密信息的方法
  7. shell脚本调用spark-sql
  8. Activity之间传递数据或数据包Bundle,传递对象,对象序列化,对象实现Parcelable接口
  9. 玄机宝盒v1.6.1.1
  10. POJ3281 Dining 最大流
  11. [Javascript] Intro to Recursion - Detecting an Infinite Loop
  12. gcc #define 学习记录
  13. 让人头疼的CSS兼容
  14. 用LinkedList集合演示栈和队列的操作
  15. .NET 常用ORM之NHibernate
  16. JSP中的作用域
  17. Golang的日志处理
  18. C - A Simple Problem with Integers POJ - 3468 线段树模版(区间查询区间修改)
  19. Docker自动补全容器名
  20. Yarn Node Labels

热门文章

  1. [LeetCode] 212. Word Search II 词语搜索之二
  2. DVWA SQL Injection 通关教程
  3. golang strings常用函数
  4. select2的简单使用
  5. sql server生成随机id
  6. 详解XOR(异或)运算加密
  7. Prometheus K8S部署
  8. 【linux】查看linux系统自带的服务启动文件
  9. 【linux】查看某个进程PID对应的文件句柄数量,查看某个进程当前使用的文件句柄数量
  10. 深入V8引擎-写在前面