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

五、测试反向代理是否生效

  1. 确保你的后端服务正在运行(如 http://127.0.0.1:3000)。

  2. 在浏览器访问 http://123.123.123.123(即 Nginx 的地址)。

  3. 如果看到后端服务的内容,说明反向代理配置成功。


六、进阶配置(可选)

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 端口)

  • 是否使用域名

我可以提供更具体的配置示例。


不容错过
Powered By TOPYUN 云产品资讯