买了腾讯云服务器之后,很多团队会碰到一个问题:网站、接口、静态资源各占一个公网 IP,前端要记好几个地址,证书也散落在不同机器上。腾讯云服务器代理要解决的正是这类麻烦。它让一台服务器替你接收请求、转发给后端,对外只留一个入口。下面从概念讲起,用一个典型案例说明为什么要这样做,再给出 Nginx 的配置思路,并把最容易踩的坑单独列出来。

服务器代理是什么
代理服务器站在客户端和目标服务之间。请求先到代理,由代理转发给真正提供服务的机器,响应再沿原路返回给用户。按方向分,常见的有两类。
- 正向代理:代理替客户端去访问外部资源,多用于内网统一出口,或者爬虫场景下的 IP 管理。
- 反向代理:代理替服务端接收请求,用于网站入口、API 网关和负载均衡。
在腾讯云上做业务的个人和企业,一般更关心反向代理。网站和接口通常只需要一个对外入口,后端服务扩容或迁移时,用户不需要感知。
适合用代理的几种场景
代理实际能帮上的忙,大致有下面几件:
- 隐藏源站。后端应用的内网 IP 藏在代理后面,公网只暴露一个入口,被直接扫描和攻击的面就小了。
- 统一域名和 HTTPS。证书只在代理层配置,后端跑 HTTP 即可,续期也只需要处理一处。
- 多服务分流。同一个域名下,/api 转给接口服务,/static 转给静态资源目录,前后端各走各的路,互不干扰。
- 跨地域访问。境外用户访问境内源站时,可以在合适地域的云服务器上部署代理,缩短链路,减少丢包。
一个典型案例
某小型在线教育团队有一个课程网站和一套视频点播接口。最开始两个服务各绑一个公网 IP,前端要记两个地址,证书分散在三台机器上,每次续期都要手动操作,还经常出错。
后来他们在腾讯云上新开一台轻量应用服务器作为代理入口,绑定弹性公网 IP 和统一域名,用 Nginx 负责 SSL 终止和路由转发。网站服务和接口服务迁到私有网络 VPC 内,只允许代理机器访问,安全组规则收紧到端口级别。改造之后,对外只剩一个入口,证书只维护一份,新增服务时在 Nginx 里加一条规则就行。
这个案例里最值得借鉴的是分层的思路。代理层统一管理入口,后端才能放心迭代,不必每次改动都牵动前端。
搭建步骤
以 Nginx 为例,基本流程如下:
- 在腾讯云控制台购买云服务器,机房尽量选离主要用户近的地域,并绑定弹性公网 IP。
- 安全组开放 80 和 443 端口。后端服务的端口只对代理机器的内网地址开放,不要对公网全部放开。
- 安装 Nginx,编写站点配置,示例如下:
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/nginx/ssl/example.com.pem;
ssl_certificate_key /etc/nginx/ssl/example.com.key;
location /api/ {
proxy_pass http://10.0.1.20:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location / {
proxy_pass http://10.0.1.10:3000/;
proxy_set_header Host $host;
}
}
- 执行 nginx -t 检查语法,确认无误后执行 nginx -s reload 让配置生效。
- 用域名访问测试,同时在后端日志里确认 X-Real-IP 等头信息是否正确传递。
配置时容易踩的坑
代理跑通之后,问题往往出在细节上。下面几个坑最常见。
proxy_pass 末尾的斜杠
location /api/ 配合 proxy_pass http://10.0.1.20:8080/; 使用时,Nginx 会把 /api/ 前缀去掉再转发,请求 /api/users 实际到达后端的是 /users。如果后端本来期望收到 /api/users,就会返回 404。两边路径要对齐,改完用 curl 测一下具体路径。
502 多半是网络没通
Nginx 报 502 时,先别急着改配置。确认后端服务监听的是内网地址,而不是 127.0.0.1,再检查安全组和 VPC 路由是否允许代理机器访问后端端口。
WebSocket 和大文件上传
做实时消息或长连接时,需要在 location 里加上 proxy_http_version 1.1,并传递 Upgrade 和 Connection 头。上传大文件时,默认的 client_max_body_size 偏小,会直接返回 413,按业务需要调大即可,同时检查 proxy_read_timeout 是否够用。
真实 IP 的信任问题
后端读取 X-Forwarded-For 时,只应该信任来自代理内网地址的那一跳。如果直接相信客户端传来的这些头,基于 IP 的限制和日志统计都可能被伪造。
安全与合规提醒
代理本身不会带来安全,配置不当反而会扩大风险。下面几项建议都值得做:
- 代理服务器开启防火墙,遵循最小权限原则,关掉用不到的端口和服务。
- 在中国大陆用云服务器对外提供网站服务,需要完成 ICP 备案,并遵守相关法律法规。
- 对外暴露的接口做好鉴权和限流,代理层可以配合速率限制模块一起使用。
- 定期查看 Nginx 访问日志和腾讯云安全中心的告警,异常及时处理。
如果你的服务已经分散在好几台机器上,可以先从统一入口这一步做起。证书、路由和访问控制收拢之后,监控和更细的访问策略再逐步补上。