当前位置: 首页 > news >正文

Nginx服务做负载均衡网关

1. 概述

  • 内部Nginx服务器做服务网关,代理后端应用服务,卸载ssl域名证书,将接收的https请求,转发至后端http服务。
  • 华为防火墙负责NAT,启用服务器负载均衡功能,将公网虚拟IP+端口映射到内部多台Nginx服务器上,并对Nginx服务器进行健康检查。
  • 因为外网带宽流量、负载都很低,所以直接使用华为防火墙做负载均衡。如果是外网带宽流量大或负载高,建议采用独立负载均衡方案(硬件或LVS)。

2. 架构图

在这里插入图片描述

3. 配置Nginx

3.1 安装Nginx

3.2 配置Nginx

1. 主配置文件

vim /usr/local/nginx/conf/nginx.conf:
user  username;worker_processes  auto;
worker_cpu_affinity auto;worker_rlimit_nofile 65535;error_log  /var/log/nginx/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;pid        /var/run/nginx/nginx.pid;events {use epoll;worker_connections  10240;
}http {server_tokens off;include       mime.types;default_type  application/octet-stream;log_format main   '{"@timestamp":"$time_iso8601",''"@msec":"$msec",''"@source":"$server_addr",''"hostname":"$hostname",''"ip":"$http_x_forwarded_for",''"client":"$remote_addr",''"request_method":"$request_method",''"scheme":"$scheme",''"domain":"$server_name",''"referer":"$http_referer",''"request":"$request_uri",''"args":"$args",''"request_body":"$request_body",''"size":$body_bytes_sent,''"status": $status,''"responsetime":$request_time,''"upstreamtime":"$upstream_response_time",''"upstreamaddr":"$upstream_addr",''"http_user_agent":"$http_user_agent",''"https":"$https",'#'"http_cookie: $http_cookie",'#'"cookie_login_token: $cookie_login_token",''}';access_log  /var/log/nginx/access.log  main;map $http_upgrade $connection_upgrade {default upgrade;''   close;}server_names_hash_bucket_size 256;client_header_buffer_size 32k;large_client_header_buffers 4 64k;client_max_body_size 1g;sendfile        on;tcp_nopush     on;#keepalive_timeout  0;keepalive_timeout  65;#gzip  on;fastcgi_connect_timeout 300;fastcgi_send_timeout 300;fastcgi_read_timeout 300;fastcgi_buffer_size 64k;fastcgi_buffers 8 64k;fastcgi_busy_buffers_size 128k;fastcgi_temp_file_write_size 128k;gzip on;gzip_min_length 1k;gzip_buffers 32 8k;gzip_http_version 1.0;gzip_comp_level 2;gzip_types text/plain application/x-javascript text/css application/xml;gzip_vary on;    # 管理虚拟主机。维护单个服务时可以注释掉,然后重新加载配置文件禁用服务!include /usr/local/nginx/conf/conf.d/default_server.conf;                 # 8080 8443include /usr/local/nginx/conf/conf.d/proxy_yourdomain.conf;               # 8080 8443}

2. 配置默认nginx服务站点

  • 禁止没有域名的请求访问,return 444 不返回错误信息。
vim /usr/local/nginx/conf/conf.d/default_server.conf
# HTTP SERVER
server {listen       8080 default_server;listen       [::]:80 default_server;server_name  _;return 444; 
}# HTTPS SERVER
server {listen       8443 ssl default_server;listen       [::]:443 ssl default_server;server_name  _;ssl_certificate "/usr/local/nginx/conf/xunku-org/xunku.org.pem";ssl_certificate_key "/usr/local/nginx/conf/xunku-org/xunku.org.key";#ssl_session_cache shared:SSL:1m;ssl_session_timeout  10m;ssl_protocols TLSv1.2 TLSv1.3;return 444;
}

3. 配置自定义代理服务站点

vim /usr/local/nginx/conf/conf.d/proxy_yourdomain.conf
# 定义upstream  
upstream  proxy_yourdomain.com {# server指令指定后端服务器的IP地址和端口server    192.168.5.76:18080;}# HTTP Server
server {# 监听端口listen       8080;server_name  www.yourdomain.com;return 301 https://$host$request_uri;}# HTTPS Server
server { # 监听端口listen       8443 ssl;server_name  www.yourdomain.com;ssl_certificate      /usr/local/nginx/conf/yourdomain/www.yourdomain.com.crt;ssl_certificate_key  /usr/local/nginx/conf/yourdomain/www.yourdomain.com.key;ssl_session_cache    shared:SSL:30m;ssl_session_timeout 5m;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!3DES;ssl_protocols TLSv1.2 TLSv1.3;ssl_prefer_server_ciphers  on;add_header Cache-Control no-cache;location / {# 代理转发,服务转发proxy_pass http://proxy_yourdomain.com;client_max_body_size 1000m;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;proxy_set_header Upgrade $http_upgrade;proxy_http_version 1.1;proxy_connect_timeout 300;proxy_read_timeout 300;proxy_send_timeout 300;#proxy_set_header Host $host:$server_port;}}

3.3 同步配置

1. 登录192.168.5.154操作

[root@centos7-192-168-005-154 conf]# cd /usr/local/nginx/conf/
[root@centos7-192-168-005-154 conf]# pwd
/usr/local/nginx/conf

2. 修改配置(略)

3. 同步修改配置
禁止在每台服务器上修改单独修改

rsync -avz nginx.conf conf.d 192.168.5.120:/usr/local/nginx/conf/
rsync -avz nginx.conf conf.d 172.26.111.1:/usr/local/nginx/conf/
rsync -avz nginx.conf conf.d 172.26.112.2:/usr/local/nginx/conf/

4. 验证配置

# username 是nginx运行的普通账户
sudo -u username /usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

5. 加载配置

systemctl reload nginx

4. 配置负载均衡

4.1 配置负载均衡安全策略

参见 华为官方配置文档
在这里插入图片描述

4.2 配置实服务器组

配置实服务器组,其中192.168.5.154配置了,但未启用。
在这里插入图片描述

4.3 配置虚拟服务

在这里插入图片描述

http://www.dtcms.com/a/313884.html

相关文章:

  • Rust ⽣成 .wasm 的极致瘦⾝之道
  • 旧物回收小程序:开启绿色生活新篇章
  • SpringBoot3.x入门到精通系列:3.2 整合 RabbitMQ 详解
  • Ethereum:智能合约开发者的“瑞士军刀”OpenZeppelin
  • 白杨SEO:百度搜索开放平台发布AI计划是什么?MCP网站红利来了?顺带说说其它
  • 剧本杀小程序系统开发:开启沉浸式推理社交新纪元
  • 力扣 hot100 Day65
  • 《Python 实用项目与工具制作指南》 · 前言
  • [自动化Adapt] GUI交互(窗口/元素) | 系统配置 | 非侵入式定制化
  • [特殊字符]️ 整个键盘控制无人机系统框架
  • Qt按键响应
  • 更智能的 RibbonBar Spread.NET 18.2Crack
  • QT:交叉编译mysql驱动库
  • 基于鼠标位置的相机缩放和平移命令的实现(原理+源码)
  • Prompt Engineering
  • 赛博威携手Dify,助力AI在企业的场景化落地
  • 【数据库】使用Sql Server创建索引优化查询速度,一般2万多数据后,通过非索引时间字段排序查询出现超时情况
  • Linux(centos)安全狗
  • Linux 用户与组管理全解析
  • 采购管理工具的实施方法论:三阶段框架与常见问题解决方案
  • RHCA02
  • How To Say - AI多语言表达工具
  • 【前端:Html】--1.3.基础语法
  • el-table高度自适应vue页面指令
  • 第二十三天(APP应用产权渠道服务资产通讯抓包静态提取动态调试测试范围)
  • Jetbrains IDE总是弹出“需要身份验证”窗口
  • 算法11. 盛最多水的容器
  • leetcode-sql-3497分析订阅转化
  • 优选算法 力扣 11. 盛最多水的容器 双指针降低时间复杂度 贪心策略 C++题解 每日一题
  • 验证码等待时间技术在酒店自助入住、美容自助与社区场景中的应用必要性研究—仙盟创梦IDE