TOP云提供高性价比云服务器租用,有中国内地/港澳台、海外等全球各地节点,TOP云国内云服务器只要有域名备案号就能直接用,无须重复备案;港澳台及海外云服务器不用备案,购买之后直接使用,省时省力省心。价格实惠,续费同价,2核2G5M仅需27元每月,8核8G50M仅需66元每月,更多配置套餐请进入下面网址了解:
TOP云总站云服务器:https://topyun.vip/server/buy.html
TOP云C站云服务器:https://c.topyun.vip/cart
在云服务器上配置 Nginx 作为反向代理,是一种常见且高效的 Web 服务架构方式。通过 Nginx 反向代理,可以将客户端请求转发到后端的应用服务器(如 Tomcat、Node.js、Python Flask/Django、Java Spring Boot 等),同时提供负载均衡、缓存、SSL 加密等功能。
一、什么是 Nginx 反向代理?
反向代理是指:客户端访问的是 Nginx 服务器,Nginx 再将请求转发到后端真实的应用服务器,客户端并不知道后端服务器的存在。
例如:
客户端 → Nginx(反向代理) → 后端应用服务器(如 Tomcat、Node.js 等)
二、前提条件
已有一台云服务器(如阿里云、腾讯云、华为云等)。
已安装 Nginx(如果没有安装,下面会提供安装步骤)。
后端有一个可访问的服务(如运行在本地的 http://127.0.0.1:3000 或云服务器上的某个端口服务)。
三、安装 Nginx(如果尚未安装)
1. 在 CentOS 上安装 Nginx
sudo yum install epel-release -y
sudo yum install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx
2. 在 Ubuntu 上安装 Nginx
sudo apt update
sudo apt install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx
安装完成后,访问服务器的 IP 地址(如 http://你的服务器IP),如果看到 Nginx 的欢迎页面,说明安装成功。
四、配置 Nginx 反向代理
假设:
你的 Nginx 服务器 IP 是 123.123.123.123。
后端服务运行在本机(或另一台服务器)的 http://127.0.0.1:3000(例如 Node.js 应用)。
我们希望用户访问 http://123.123.123.123 时,Nginx 将请求转发到 http://127.0.0.1:3000。
1. 编辑 Nginx 配置文件
Nginx 的主配置文件通常位于:
CentOS: /etc/nginx/nginx.conf
Ubuntu: /etc/nginx/nginx.conf 或 /etc/nginx/sites-available/default
推荐在 /etc/nginx/conf.d/ 目录下创建一个新的配置文件,例如 proxy.conf,以保持配置清晰。
sudo vi /etc/nginx/conf.d/proxy.conf
添加如下内容:
server { listen 80; server_name 123.123.123.123; # 替换为你的服务器 IP 或域名 location / { proxy_pass http://127.0.0.1:3000; # 后端服务地址 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; } }
说明:
listen 80;:监听 80 端口(HTTP)。
server_name:可以是 IP 或域名(如果你配置了域名解析)。
proxy_pass:后端服务的地址,可以是 IP + 端口,也可以是域名。
proxy_set_header:设置转发时的请求头信息,确保后端能获取到真实的客户端信息。
2. 检查 Nginx 配置是否正确
sudo nginx -t
如果输出如下,说明配置正确:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
3. 重新加载 Nginx
sudo systemctl reload nginx
# 或者
sudo nginx -s reload
五、测试反向代理是否生效
确保你的后端服务正在运行(如 http://127.0.0.1:3000)。
在浏览器访问 http://123.123.123.123(即 Nginx 的地址)。
如果看到后端服务的内容,说明反向代理配置成功。
六、进阶配置(可选)
1. 使用域名代替 IP
如果你有一个域名(如 example.com),并将域名解析到你的服务器 IP:
将 server_name 改为:
server_name example.com;
然后访问 http://example.com 即可。
2. 反向代理多个后端服务(多站点)
你可以在 /etc/nginx/conf.d/ 下创建多个 .conf 文件,每个文件对应一个反向代理规则。例如:
/etc/nginx/conf.d/app1.conf → 代理到 http://127.0.0.1:3000
/etc/nginx/conf.d/app2.conf → 代理到 http://127.0.0.1:4000
Nginx 会根据 server_name 或 listen 端口自动匹配对应的配置。
3. 配置 HTTPS(SSL 加密)
可以使用 Let's Encrypt 免费证书为 Nginx 配置 HTTPS:
sudo apt install certbot python3-certbot-nginx # Ubuntu
sudo yum install certbot python3-certbot-nginx # CentOS
然后运行:
sudo certbot --nginx -d example.com
它会自动为你的域名配置 SSL 证书,并修改 Nginx 配置以支持 HTTPS。
七、总结
通过以上步骤,你已经成功在云服务器上配置了 Nginx 反向代理,将客户端请求转发到后端应用服务。这种方式不仅提高了安全性(隐藏后端服务),还方便进行负载均衡、缓存、SSL 加密等高级功能扩展。
如果你告诉我你使用的:
操作系统(如 CentOS 7、Ubuntu 20.04)
后端服务类型及端口(如 Node.js 运行在 3000 端口)
是否使用域名
我可以提供更具体的配置示例。