手把手教你用阿里云轻量服务器配置Nginx反向代理,小白也能轻松上手!

嘿,朋友!你是不是也有过这样的困扰:买了个阿里云的轻量应用服务器,想搭个网站或者部署几个服务,但不知道怎么让它们通过一个域名统一访问?别急,今天我就来给你支个招——用 Nginx 做反向代理,让你的多个项目“共处一室”,还能对外只留一个门面。关键是,整个过程超级简单,哪怕你是第一次接触服务器,跟着我一步步来,绝对能搞定!

阿里云轻量服务器如何配置Nginx反向代理?

什么是反向代理?先搞明白这个再动手

咱们先不急着敲命令,得先把“反向代理”这四个字给掰扯清楚。说白了,它就像你家小区门口那个保安大叔。你朋友来找你,他不会直接把人放进去乱窜,而是先问清楚找谁,然后帮你转达、引导。Nginx 就是这个“保安”,它站在最前面,接收所有外部请求,再根据规则把请求转发给后面真正干活的服务。

比如你有两个项目:一个跑在 3000 端口的前端页面,另一个是 5000 端口的后端 API。没有反向代理的话,用户就得记住两个地址,还可能被浏览器安全策略搞得很头疼。但有了 Nginx 反向代理,你可以让 yourdomain.com 访问前端,yourdomain.com/api 走后端,看起来就是一个完整的网站,用户体验直接拉满!

准备工作:买服务器、装系统、连上去

既然要动手,第一步当然是有个服务器。我强烈推荐阿里云的轻量应用服务器,价格便宜、配置够用,特别适合个人项目和小团队。而且操作界面贼友好,不像 ECS 那么复杂,新手也能快速上手。

选好服务器之后,建议选择 Ubuntu 20.04 或 22.04 系统,稳定又省心。创建完实例后,阿里云会给你一个公网 IP 和登录密码(或者密钥)。这时候打开终端(Mac/Linux)或者用 PuTTY(Windows),ssh 连上去就 OK 了。

友情提示:如果你还没买服务器,或者想省点钱,赶紧去领张阿里云优惠券!新用户经常有大额折扣,续费也能用,省下的都是纯利润啊~

安装 Nginx:一句话搞定

连接上服务器后,第一件事就是更新软件包列表:

sudo apt update

然后安装 Nginx:

sudo apt install nginx -y

就这么一句命令,等它跑完,Nginx 就装好了。你可以用 sudo systemctl status nginx 看看状态,如果显示“active (running)”,那就说明服务已经启动成功。

现在打开浏览器,输入你的公网 IP 地址,应该就能看到“Welcome to nginx!”的默认页面了。恭喜你,第一步成功!

配置反向代理:实战演练

接下来就是重头戏了。假设你现在有两个本地服务:

  • 前端项目运行在 localhost:3000
  • 后端 API 运行在 localhost:5000

你想让用户通过域名访问时,自动把请求分发到对应的服务。那咱们就开始改配置吧!

1. 找到并编辑默认站点配置文件

Nginx 的配置文件一般在 /etc/nginx/sites-available/default。我们可以用 nano 编辑器来修改:

sudo nano /etc/nginx/sites-available/default

你会看到一堆配置,别慌,我们只关心 server 这个块。先把里面默认的内容清一清,换成下面这段:

server {
    listen 80;
    server_name yourdomain.com;  # 替换成你自己的域名
    location / {
        proxy_pass http://localhost: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;
    }
    location /api/ {
        proxy_pass http://localhost:5000/;
        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;
    }
}

2. 配置说明:每行都在干啥?

来,我逐行解释一下,让你心里有底:

  • listen 80;:监听 80 端口,也就是 HTTP 默认端口。
  • server_name yourdomain.com;:这里填你的域名。记得提前在域名服务商那里把 A 记录解析到你的服务器 IP。
  • location /:匹配根路径,所有不带 /api 的请求都走这里,转发到 3000 端口。
  • proxy_pass:真正的转发目标。
  • 下面一堆 proxy_set_header:是用来传递客户端真实信息的,比如 IP 地址、协议类型,避免后端服务“蒙在鼓里”。
  • location /api/:注意结尾的斜杠,表示以 /api/ 开头的路径都会被代理到后端服务,并且自动去掉前缀。

特别提醒:proxy_pass 后面加不加斜杠很重要!比如你写 http://localhost:5000 不带斜杠,那么访问 /api/user 时,会被转发成 http://localhost:5000/api/user;但如果写了 http://localhost:5000/ 带斜杠,就会变成 http://localhost:5000/user,相当于去掉了 /api 前缀。根据你的后端路由设计来决定怎么写。

测试配置 & 重启 Nginx

改完配置可不能直接重启,万一写错了,Nginx 启动失败,网站就打不开了。所以先做个语法检查:

sudo nginx -t

如果输出显示“syntax is ok”和“test is successful”,那就可以放心重启了:

sudo systemctl restart nginx

这时候再打开浏览器,访问你的域名,如果前端页面正常加载,并且调用 /api/xxx 接口也能拿到数据,那就说明反向代理配置成功了!🎉

进阶技巧:加个 HTTPS 更安全

现在都 2024 年了,HTTP 明文传输早就过时了。浏览器还会给标“不安全”,影响用户体验。所以强烈建议你给网站加上 HTTPS。

用 Let’s Encrypt 的免费证书是最划算的方案。先安装 Certbot:

sudo apt install certbot python3-certbot-nginx -y

然后运行:

sudo certbot --nginx -d yourdomain.com

按照提示操作,Certbot 会自动帮你申请证书、修改 Nginx 配置、设置自动续期。几分钟后,你的网站就能用 https:// 安全访问了,小绿锁安排上!

常见问题排查

配置过程中难免遇到坑,我给你总结几个高频问题:

  • 页面打不开,显示 502 Bad Gateway:大概率是后端服务没起来,或者端口没开。用 curl localhost:3000 测试一下本地能不能访问。
  • 静态资源 404:检查前端构建后的文件是否放在正确目录,或者确认 proxy_pass 转发路径有没有写错。
  • 跨域问题还在?:用了反向代理后,前后端同域了,理论上不会有跨域。如果还有,看看前端代码里是不是写了完整域名请求,改成相对路径就行。
  • 修改配置没生效?:别忘了 nginx -tsystemctl reload nginx,有时候缓存也会捣乱,清下浏览器缓存试试。

反向代理让运维更轻松

看到这儿,你应该已经掌握了在阿里云轻量服务器上配置 Nginx 反向代理的全套流程。从安装到配置,再到加 HTTPS,整套下来其实也就十几分钟。关键是思路清晰:Nginx 是“门面担当”,负责接待和分流;你的应用专心干活就行,不用暴露在公网前线。

这种架构不仅安全,还特别灵活。以后你想加个博客、再搭个管理后台,都可以用同样的方式,通过不同的路径或子域名来区分,完全不用换服务器。

最后再啰嗦一句:如果你是刚开始玩服务器,真的别犹豫,趁阿里云有活动,赶紧领张阿里云优惠券,首单能省不少。省下来的钱,买杯奶茶犒劳自己不香吗?

好了,今天的教程就到这里。

内容均以整理官方公开资料,价格可能随活动调整,请以购买页面显示为准,如涉侵权,请联系客服处理。

本文由星速云发布。发布者:星速云。禁止采集与转载行为,违者必究。出处:https://www.67wa.com/149811.html

(0)
上一篇 1天前
下一篇 1天前
联系我们
关注微信
关注微信
分享本页
返回顶部