HTTP 与 HTTPS 代理配置指 南
本文档介绍如何为微搭低代码平台配置 HTTP 和 HTTPS 代理访问,支持通过 Nginx 等七层代理实现安全的 HTTPS 访问。
1. 环境准备
在开始配置之前,请确保具备以下条件:
1.1 基础环境
- 七层代理服务器:Nginx、Apache 或负载均衡器(LB)
- 访问域名:已备案的域名,并完成 DNS 解析配置
- SSL 证书:有效的 SSL 证书文件(.crt 和 .key 文件)
1.2 网络要求
- 代理服务器能够访问微搭服务器
- 防火墙已开放相应端口(80、443、8080 等)
- 域名 DNS 解析指向代理服务器 IP
2. 微搭平台配置
2.1 修改配置文件
-
进入安装目录
cd /data/tencent/weda -
编辑配置文件
vim config.yaml -
更新配置参数
# 访问协议(http 或 https)domainProtocol: https# 访问域名domain: your-domain.com# 对外访问端口(http: 80, https: 443)domainPort: 443# 微搭服务内部端口(确保端口未被占用)serverPort: 8080
2.2 应用配置
# 重启服务使配置生效
./upgrade.sh
配置说明
domainProtocol:根据实际需求选择 http 或 httpsdomain:填写实际的访问域名domainPort:HTTP 使用 80,HTTPS 使用 443serverPort:微搭内部服务端口,默认 8080
3. Nginx 代理配置
3.1 HTTP 访问配置
完整配置文件示例
创建或编辑 /etc/nginx/nginx.conf 文件:
# 全局配置
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
# 事件模块配置
events {
worker_connections 1024;
}
# HTTP 模块配置
http {
# MIME 类型映射
include /etc/nginx/mime.types;
default_type application/octet-stream;
# 日志格式
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
# 访问日志
access_log /var/log/nginx/access.log main;
# Gzip 压缩配置
gzip on;
gzip_comp_level 5;
gzip_min_length 256;
gzip_proxied any;
gzip_types application/javascript application/json application/xml
application/xhtml+xml text/css text/plain text/xml;
# 客户端请求配置(重要:支持大文件上传)
client_max_body_size 500m; # 客户端请求体最大允许大小(文件上传限制)
client_body_buffer_size 10m; # 读取客户端请求体的缓冲区大小
# HTTP 服务器配置
server {
listen 80;
server_name your-domain.com; # 替换为您的实际域名
# 代理配置
location / {
proxy_pass http://192.168.1.100:8080; # 替换为您的微搭服务器 IP 和端口
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
}
}
}
3.2 HTTPS 访问配置
SSL 证书准备
-
创建证书目录
mkdir -p /etc/nginx/certs -
上传证书文件
# 将证书文件上传到指定目录/etc/nginx/certs/├── server.crt # SSL 证书文件└── server.key # SSL 私钥文件
HTTPS 服务器配置
将上述 nginx.conf 中的 server 块替换为:
server {
listen 443 ssl http2;
server_name your-domain.com; # 替换为您的实际域名
# SSL 证书配置
ssl_certificate /etc/nginx/certs/server.crt;
ssl_certificate_key /etc/nginx/certs/server.key;
# SSL 安全配置
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
# 代理配置
location / {
proxy_pass http://192.168.1.100:8080; # 替换为微搭服务器 IP 和端口
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
}
}
# HTTP 重定向到 HTTPS(可选)
server {
listen 80;
server_name your-domain.com;
return 301 https://$server_name$request_uri;
}
3.3 关键配置参数说明
客户端请求配置
-
client_max_body_size 500m:设置客户端请求体最大允许大小(文件上传限制)- 默认值:1m
- 推荐值:500m,支持微搭平台大文件上传需求
- 根据实际文件上传需求进行调整
-
client_body_buffer_size 10m:设置读取客户端请求体的缓冲区大小- 默认值:8k 或 16k(取决于平台)
- 推荐值:10m,提升大文件处理性能
- 有助于防止大文件上传时的内存问题
服务器配置
server_name your-domain.com:指定此服务器块的域名- 替换为您的实际域名
- 必须与 SSL 证书域名匹配(HTTPS 配置)
- 支持通配符(如
*.example.com)和多域名配置
代理配置
proxy_pass http://192.168.1.100:8080:定义后端服务器地址- 将
192.168.1.100替换为您的微搭服务器 IP 地址 - 将
8080替换为您的微搭服务端口(在 config.yaml 中配置) - 即使前端使用 HTTPS,后端仍使用 HTTP 协议(SSL 在代理层终结)
- 将
代理头配置(确保功能正常的关键配置)
proxy_set_header X-Forwarded-Proto $scheme:传递原始协议(http/https)proxy_set_header Host $http_host:保持原始 Host 头proxy_set_header X-Real-IP $remote_addr:传递真实客户端 IP 地址proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for:维护完整的代理链信息
4. 配置验证与测试
4.1 Nginx 配置验证
# 检查配置文件语法
nginx -t
# 重新加载配置
nginx -s reload
# 如果 Nginx 通过系统包管理器安装并注册为 systemd 服务时,可使用以下 systemctl 命令:
# 重启 Nginx 服务进程
systemctl restart nginx
# 启用 Nginx 服务开机自启动
systemctl enable nginx
4.2 访问测试
配置完成后,通过以下方式访问平台:
- HTTP 访问:
http://your-domain.com - HTTPS 访问:
https://your-domain.com
4.3 功能验证
- 基础访问:确认能正常打开平台首页
- 登录测试:验证用户登录功能正常
- 文件上传:测试大文件上传功能
- SSL 证书:使用浏览器检查 SSL 证书状态