服务器中间件教程:Nginx 安装配置与反向代理实战

服务器中间件是跑在操作系统和业务程序之间的基础软件,常见的有 Nginx、Apache、Tomcat、Redis 等。
很多新手第一次接触这个概念时不知道从哪下手,这篇服务器中间件教程就以最常用的 Nginx 为例,从安装到配置反向代理、开启 HTTPS、排查报错完整走一遍。
只要你能登录 Linux 服务器并会用 ssh,就可以照着做。

先确认环境,再准备安装

开始前先确认三件事,能省掉后面很多莫名其妙的问题。

  • 服务器能通过 ssh user@ip 登录,并且当前账号有 sudo 权限。
  • 系统是主流发行版之一,本文命令以 Debian/Ubuntu 和 CentOS/RHEL 为例,两者包管理器不同:前者用 apt,后者用 dnf 或 yum。
  • 放行端口:Nginx 默认监听 80(HTTP)和 443(HTTPS),云服务器安全组和系统防火墙都要放行。

查看系统版本,确定用哪套命令:

cat /etc/os-release

如果输出里是 Ubuntu 或 Debian,就用 apt;
出现 CentOS、Rocky、AlmaLinux,就用 dnf。

安装 Nginx 并确认服务状态

Debian/Ubuntu 执行:

sudo apt update
sudo apt install -y nginx

CentOS/RHEL 执行:

sudo dnf install -y nginx

安装完成后启动并设置开机自启:

sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl status nginx

status 出现绿色的 active (running) 就表示中间件已经在运行。
此时浏览器访问服务器公网 IP,能看到 Nginx 的默认欢迎页,说明安装这一步成功了。
如果打不开,先检查安全组和防火墙,而不是反复重装。

配置反向代理,让 Nginx 转发到后端程序

反向代理是 Nginx 最核心的用途:
用户访问域名,
Nginx 把请求转发给本机或另一台机器上的业务程序(比如跑在 3000 端口的 Node 服务、8080 端口的 Java 应用)。

在 /etc/nginx/conf.d/ 目录下新建一个配置文件,例如 app.conf:

server {
    listen 80;
    server_name your-domain.com;

    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;
    }
}

把 your-domain.com 换成你的真实域名,3000 换成后端程序实际监听的端口。
保存后先做语法检查,再重载:

sudo nginx -t
sudo systemctl reload nginx

nginx -t 返回 syntax is ok 和 test is successful 才说明配置没问题。
这一步很关键,配置写错直接重载会导致服务异常,而先测试就能提前拦住。

开启 HTTPS 并做好基础优化

现在浏览器对 HTTP 站点越来越不友好,建议尽早配 HTTPS。
用 Certbot 申请免费证书是最省事的方式,以 Ubuntu 为例:

sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d your-domain.com

按提示选择自动跳转 HTTPS 即可,Certbot 会自动改写上面的 server 配置并加上证书路径。
证书到期前它也能自动续期,可以用下面命令模拟续期测试:

sudo certbot renew --dry-run

顺手可以加两个小优化:在 http 块里开启 gzip on; 压缩文本响应,减少传输体积;
把静态资源的 location 加上 expires 7d;,让浏览器缓存图片和 CSS。
改动后同样要 nginx -t 再 reload。

常见报错怎么排查

配置过程中最容易遇到三类问题,先看日志再动手,不要盲目改配置。
Nginx 的日志默认在 /var/log/nginx/ 下:access.log 记录访问,error.log 记录错误。

  • 访问返回 502 Bad Gateway:一般是后端程序没启动或端口写错。先用 ss -lntp | grep 3000 确认端口在监听,再用 curl http://127.0.0.1:3000 看后端本身能否响应。
  • 返回 403 Forbidden:常见于目录权限不足或 index 文件缺失。检查站点根目录权限,确认目录里有默认首页文件。
  • 访问还是默认欢迎页:说明你的配置没被加载。检查文件是否放在 conf.d/ 且以 .conf 结尾,server_name 是否写对,然后 nginx -t 确认配置已被识别。

改完配置后养成固定习惯:nginx -t 通过再 systemctl reload nginx,出问题第一时间看 error.log 的最后几行。

验证配置是否真正生效

配置完成不等于生效,用下面几个动作做最终确认:

  • 浏览器访问 https://your-domain.com,地址栏出现锁形图标,说明 HTTPS 正常。
  • 用 curl -I https://your-domain.com 看返回状态码,200 表示正常,301 表示跳转,502 则回到上一节排查。
  • 打开 error.log,用 tail -f /var/log/nginx/error.log 实时观察,确认没有持续报错。
  • 重启一次服务器 sudo reboot,重新登录后确认 nginx 仍是 active,说明开机自启配置生效。

到这里,一个能对外服务、支持 HTTPS 的 Nginx 中间件就跑起来了。
后续接其他中间件(比如 Redis 做缓存、Tomcat 跑 Java 应用)时,思路是一样的:确认环境、安装、改配置、测语法、重载、看日志验证。

几个新手常问的问题

Nginx 和 Apache 该选哪个? 两者都能做 Web 服务器和反向代理。
Nginx 在高并发静态请求和反向代理场景下更常见,配置也更简洁;
Apache 的 .htaccess 和模块生态对某些老项目更友好。
新手做反向代理和 HTTPS,优先从 Nginx 入手即可。

改完配置为什么浏览器没变化? 多半是没重载,或者浏览器缓存了旧页面。
执行 sudo systemctl reload nginx 后强制刷新(Ctrl+F5)再看。

能不能用宝塔面板代替命令行? 可以。
宝塔的网站和反向代理功能本质也是生成 Nginx 配置,面板里操作更直观,但理解配置文件结构后,排查问题会更从容,遇到面板解决不了的报错也能自己定位。

服务器中间件需要经常更新吗? 安全更新建议跟进,但升级前先在测试环境验证配置兼容性,生产环境升级前备份好 /etc/nginx/ 目录和证书文件,避免升级后配置不兼容导致服务中断。

分享到:
上一篇
Linux 服务器数据库安装与远程连接配置实操
下一篇
零基础服务器DevOps教程:从手动部署到自动化上线
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意