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.pswp.cn/web/91986.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/91986.shtml
英文地址,请注明出处:http://en.pswp.cn/web/91986.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

十三、请求响应-请求:日期参数和JSON参数

日期参数代码:日期参数 //日期时间参数RequestMapping("/dataParam")public String dataParam(DateTimeFormat(pattern "yyyy-MM-dd HH:mm:ss") LocalDateTime updateTime){System.out.println(updateTime);return "OK";}结果JSON参…

可信数据库大会现场,TDengine 时序数据库展示核电场景下的高性能与 AI 创新

设备在升级,场站在扩建,但数据系统却还在“跟不上”。这正是许多核电企业在推进数字化转型过程中最真实的感受。高频采集、长周期存储、精度要求高……这些构成了对数据库系统的“炼狱级考验”。在这样一个背景下,国产数据库的能力边界正在被…

ctflearn-POST practice

靶场地址:165.227.106.113/post.php 解题: 一.分析题目 提示: 知道要用POST请求提交表单,看一下源码信息 得到可能需要用post请求方式去提交表单,并且传数据admin和password,这边提供两种方式 方法一&…

FPGA实现OV7670摄像头图像处理至VGA显示器

本文还有配套的精品资源,点击获取 简介:本项目基于FPGA技术,结合OV7670摄像头传感器进行视频捕获,经SDRAM存储,并通过VGA显示器展示。同时,集成了中值滤波算法提高图像清晰度。该项目涉及数字图像处理系…

使用python写一套完整的智能体小程序

创建一个简单的智能体(Agent)程序在人工智能和自动化任务中,智能体(Agent)是指能够感知环境并通过决策和行动来实现目标的实体。Python 提供了丰富的库和框架,可以用于构建智能体程序,例如使用 …

电商项目_性能优化_海量数据读写、存储、检索

海量数据读写方式选择高并发读写场景分析无论任何业务系统,无非就是两个操作:写和读。 在海量数据和高并发的场景下,写和读就会成为系统性能的瓶颈。下面分析不同业务场景下面临的问题:侧重“高并发读”的系统场景1:搜…

RabbitMQ面试精讲 Day 9:优先级队列与惰性队列

【RabbitMQ面试精讲 Day 9】优先级队列与惰性队列 文章标签 RabbitMQ,优先级队列,惰性队列,消息队列,面试技巧,系统架构 文章简述 本文是"RabbitMQ面试精讲"系列第9天,深入解析优先级队列与惰性队列的实现原理与实战应用。文章详细讲解优先级队列的排…

[硬件电路-121]:模拟电路 - 信号处理电路 - 模拟电路中常见的难题

模拟电路设计是电子工程中极具挑战性的领域,其核心难题源于信号的连续性、元件的非理想特性以及环境干扰的复杂性。以下是模拟电路中常见的难题及其技术本质与解决方案:1. 噪声与干扰:信号的“隐形杀手”技术本质:模拟信号对微小电…

Java 大视界 -- Java 大数据在智能交通智能停车诱导与车位共享优化中的应用(381)

Java 大视界 -- Java 大数据在智能交通智能停车诱导与车位共享优化中的应用(381)引言:正文:一、智能停车的 “老大难”:不只是 “车位少” 那么简单1.1 车主与车位的 “错位困境”1.1.1 信息滞后的 “睁眼瞎”1.1.2 车…

基于落霞归雁思维框架的自动化测试实践与探索

基于落霞归雁思维框架的自动化测试实践与探索 在当今快速发展的软件开发领域,自动化测试已成为提高软件质量和开发效率的关键环节。本文将结合落霞归雁的思维框架——“观察现象 → 找规律 → 应用规律 → 实践验证”,探讨如何将其应用于自动化测试领域&…

Unity Shader编程进阶:掌握高阶渲染技术 C# 实战案例

Unity Shader编程完全入门指南:从零到实战 C# 本文将深入探讨Unity Shader编程的高级技术,包括自定义光照模型、后处理效果、GPU实例化、表面着色器深度应用等,帮助开发者提升渲染效果与性能优化能力。 提示:内容纯个人编写&#…

(论文速读)Text-IF:基于语义文本引导的退化感知交互式图像融合方法

论文信息论文题目:Text-IF: Leveraging Semantic Text Guidance for Degradation-Aware and Interactive Image Fusion(Text-IF:利用语义文本指导退化感知和交互式图像融合)会议:CVPR2024摘要:图像融合的目的是将不同源…

python创建一个excel文件

以下是使用Python根据指定名称创建Excel文件的两种实现方法,根据需求选择适合的方案:方法一:使用pandas库(适合结构化数据) # 安装依赖(命令行执行) # pip install pandas openpyxlimport panda…

C++高频知识点(十四)

文章目录66. 程序什么时候应该使用多线程,什么时候单线程效率高?67. 死锁的原因和避免死锁的避免预防死锁:破坏持有并等待条件68. TCP拥塞控制四个阶段轮换过程描述69. C的内存管理70. 构造函数可以是虚函数吗,析构函数呢66. 程序…

浅窥Claude-Prompting for Agents的Talk

Prompting for Agents先说一句:颜值这么高,你俩要出道啊。此图基本就是claude倡导的agent prompt结构了,可以看到经过一年时间的演变,基本都是follow这个结构去写prompt。我比较喜欢用Role→react→task→histroy→few shot→rule…

【MySQL04】:基础查询

MySQL的基本查询表的增删查改 insert(插入) insert [info] table_name [(colume, [,colume] ...)] values (value_list) ...对于value_list我们通过,作为分隔符 插入替换我们使用on duplicate key update, 表示如果存在主键冲突, 会进行更新, 这个字段后面还有写更新的字段repl…

NGINX反向代理golang后端服务

nginx配置参考(/etc/nginx/sites-available路径下创建配置文件) server {listen 80; # 监听80端口server_name ip; # 你的域名或IPlocation / {root /var/www/test_page/;index index.html; # 默认文件try_files $uri $uri/ /index.html; # 单页…

【秋招笔试】2025.08.03虾皮秋招笔试-第二题

📌 点击直达笔试专栏 👉《大厂笔试突围》 💻 春秋招笔试突围在线OJ 👉 笔试突围在线刷题 bishipass.com 02. 城市规划的连通网络 问题描述 A先生是一名城市规划师,他负责设计一个智能城市的通信网络。城市被划分为一个 n m n \times m n

JVM 01 运行区域

Java 虚拟机 跨平台 虚拟机隐藏平台差异,解决不同平台代码运行结果不一致问题,实现Write Once, Run Anywhere,实现用户代码跨平台。它本身是一个操作系统上的应用程序,将字节码文件翻译成特定机器的机器码。 Java 虚拟机 运行时内…

[学习笔记-AI基础篇]03_Transfommer与GPT架构学习

介绍GPT-1,GPT-2,GPT-3,GPT-4 GPT-1 介绍2018年6月,OpenAI公司发表了论文"|mproving Language Understanding by Generative Pre-training”《用生成式预训练提高模型的语言理解力》,推出了具有1.17亿个参数的GPT-1(Generative Pre-trainingTransformers,生成式预训练变换…