https nginx 负载均衡配置

我的系统是OpenEuler。

  • 安装nginx
bash 复制代码
yum install -y nginx
  • 启动&开机启动
bash 复制代码
systemctl start nginx
systemctl enable nginx
  • 自定义conf配置文件
bash 复制代码
cat <<EOF >> /etc/nginx/conf.d/load_balancer.conf
upstream backend {
	ip_hash; # 防止验证码验证失败
	server 192.168.1.150:443;
	server 192.168.1.153:443;
}

server {
	listen 80;
	# 使用 IP 地址作为 server_name
	server_name 192.168.1.155;
	# 将 HTTP 请求重定向到 HTTPS
	return 301 https://$host$request_uri;
	# 日志配置
	access_log /var/log/nginx/192.168.1.155_http_access.log;
	error_log /var/log/nginx/192.168.1.155_http_error.log;
}

server {
	listen 443 ssl;
	# 使用 IP 地址作为 server_name
	server_name 192.168.1.155;

	# SSL 证书配置,使用自签名证书
	ssl_certificate /opt/crt/server.crt;
	ssl_certificate_key /opt/crt/server.key;

	# SSL 优化配置
	ssl_protocols TLSv1.2 TLSv1.3;
	ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
	ssl_prefer_server_ciphers on;

	# 日志配置
	access_log /var/log/nginx/192.168.1.155_https_access.log;
	error_log /var/log/nginx/192.168.1.155_https_error.log;

	# 错误处理配置
	error_page 404 /404.html;
	error_page 500 502 503 504 /50x.html;

	location = /404.html {
		root /usr/share/nginx/html;
	}

	location = /50x.html {
		root /usr/share/nginx/html;
	}

	location / {
		proxy_pass https://backend;
		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;
		# 处理 HTTPS 相关配置
		proxy_ssl_server_name on;
	}
}
EOF
  • 检查配置文件的语法是否正确
bash 复制代码
nginx -t
  • 重新加载 Nginx 配置
bash 复制代码
nginx -s reload
  • OpenSSL 生成自签名证书
bash 复制代码
openssl genpkey -algorithm RSA -out server.key -pkeyopt rsa_keygen_bits:2048
        
openssl req -new -key server.key -out server.csr #【这一步建议绑定ip】
    
openssl x509 -req -in server.csr -signkey server.key -out server.crt -days 36500
  • 开启443端口
bash 复制代码
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --reload
  • 验证
bash 复制代码
curl -k https://192.168.1.155
相关推荐
Brilliantwxx43 分钟前
【Linux】 软件包管理器(yum)+ Vim使用
linux·运维·服务器·开发语言·编辑器·vim
^yi1 小时前
【Linux系统编程】对操作系统的理解
linux·运维·服务器·操作系统·系统调用·os
Kina_C1 小时前
LVS-NAT 负载均衡实验从环境搭建到规则持久化
linux·运维·服务器·负载均衡·lvs
Android洋芋2 小时前
PrintFriendly网页文章转PDF插件工具及技术分析
运维·服务器·pdf·网页转pdf
2601_964702892 小时前
Claude Opus 5 API 开发实战:对话、文本生成与结构化输出
java·服务器·前端
聚焦前沿2 小时前
水动力优化导流罩:原理、数据与实船验证
大数据·服务器·数据库·人工智能
huainingning2 小时前
防火墙重启后ssl登录提示证书过期临时解决方法
linux·服务器·ssl
sulikey2 小时前
服务器安装Docker教程。如何在云服务器安装Docker容器?
运维·服务器·ubuntu·docker·安装教程·云服务器
池央3 小时前
NAS里的大文件怎么快速传?用Copyparty搭建轻量文件服务器
运维·服务器·cpolar
金海境科技3 小时前
【服务器数据恢复】H3C CAS虚拟化平台HP存储qcow2文件损坏快照丢失数据恢复案例
服务器·数据库·经验分享