
想让你的网站或Web应用在互联网上安家落户?那你一定需要一个稳定、高效的Web服务器软件。说到这,Nginx (发音 Engine-X) 绝对是当今舞台上最耀眼的明星之一!这家伙以轻量级、高性能、高并发处理能力而闻名,无论是托管静态网页,还是作为反向代理、负载均衡器,都表现得非常出色。
废话不多说,这篇教程就带你一步步,在最主流的两大Linux服务器阵营——Ubuntu/Debian系 和 CentOS/RHEL系 (包括Rocky Linux, AlmaLinux等) 上把Nginx给装起来跑起来!
动手前的准备 (Prerequisites):
- 你得有台运行中的Linux服务器(推荐使用如 Ubuntu 22.04 LTS 或 CentOS Stream 9 / Rocky Linux 9 / AlmaLinux 9 等较新稳定版)。
- 你需要一个拥有
sudo
权限的非root用户账号(用root直接操作?不太推荐哦)。 - 对Linux命令行有那么一丢丢基础(知道怎么敲命令、用
nano
或vim
编辑文件就行)。
第一种情况:在 Ubuntu / Debian 上安装 Nginx
Ubuntu和Debian用户有福了,安装Nginx通常非常直接:
1.更新软件包列表: 先确保你的包管理器知道最新的软件信息。
Bash
sudo apt update
2.安装 Nginx: 一条命令搞定!-y
参数会自动确认安装提示。
Bash
sudo apt install nginx -y
这通常会从官方仓库安装一个稳定版本的Nginx。
3.配置防火墙 (UFW): Ubuntu默认使用ufw
防火墙。我们需要允许外部访问HTTP(80端口)和/或HTTPS(443端口)。
查看可用应用配置: sudo ufw app list
。你应该能看到类似 Nginx HTTP
, Nginx HTTPS
, Nginx Full
的选项。
允许HTTP访问: 对于初次安装,先允许HTTP访问。
Bash
sudo ufw allow 'Nginx HTTP'
(重要!) 确保SSH也能访问: 如果你之前没配置过,别忘了允许SSH连接,否则启用防火墙后你可能就登不上了!
Bash
sudo ufw allow OpenSSH
启用防火墙:
Bash
sudo ufw enable
按y
确认。
检查状态: 确认规则已生效。
Bash
sudo ufw status
你应该能看到 Nginx HTTP
和 OpenSSH
(或其他你允许的SSH端口) 处于 ALLOW
状态。
第二种情况:在 CentOS / RHEL / Rocky / AlmaLinux 上安装 Nginx
对于CentOS/RHEL系的系统,步骤也类似,主要是防火墙工具不同:
1.更新软件包:
Bash
sudo dnf update -y
2.安装 Nginx:
Bash
sudo dnf install nginx -y
(注:在非常老的CentOS版本上可能需要先启用EPEL仓库,但在CentOS Stream 9/Rocky 9/AlmaLinux 9等新版本中,Nginx通常在默认仓库或AppStream仓库中就有。)
3.启动并设置开机自启: 安装后需要手动启动Nginx服务,并让它在服务器重启后自动运行。
Bash
sudo systemctl start nginx
sudo systemctl enable nginx
4.配置防火墙 (firewalld): RHEL系默认使用 firewalld
。
永久允许HTTP服务:
Bash
sudo firewall-cmd --permanent --add-service=http
(可选) 永久允许HTTPS服务: 如果你计划使用SSL证书。
Bash
sudo firewall-cmd –permanent –add-service=https
重新加载防火墙规则使其生效:
Bash
sudo firewall-cmd --reload
检查已允许的服务:
Bash
sudo firewall-cmd --list-services --permanent
确保 http (以及 https 如果你添加了) 出现在列表中,同时也要保证 ssh 服务是被允许的。
检查 Nginx 服务状态 (通用)
无论在哪种系统上安装,你都可以用 systemctl
命令来检查Nginx服务的运行状态:
Bash
sudo systemctl status nginx
如果看到绿色的 active (running)
字样,恭喜你,Nginx已经在后台欢快地跑起来了!
常用Nginx控制命令:
sudo systemctl stop nginx
: 停止服务sudo systemctl start nginx
: 启动服务sudo systemctl restart nginx
: 重启服务(完全停止再启动)sudo systemctl reload nginx
: 重新加载配置(**推荐!**修改配置文件后用这个,服务不中断)
最后一步:浏览器见证奇迹!
是时候验证你的成果了。
- 获取服务器的公网IP地址: 你可以在你的服务商控制面板找到它,或者登录服务器后尝试用
ip addr show
(查找你的主网卡信息) 或curl ifconfig.me
命令获取。 - 打开你的Web浏览器: 在地址栏输入
http://<你的服务器公网IP地址>
,然后按下回车。
看到什么了?
如果一切顺利,你应该会看到一个非常经典的 “Welcome to nginx!” (或者类似字样的默认欢迎页面)。这个页面的出现,就标志着你的Nginx Web服务器已经成功安装、启动,并且防火墙也正确配置,允许外部HTTP请求访问了!
如果没看到欢迎页面怎么办?
- 检查防火墙: 确认HTTP(80端口)是否真的在防火墙中允许了?
- 检查Nginx服务状态:
sudo systemctl status nginx
看看服务是不是真的在active (running)
?如果不是,尝试sudo systemctl start nginx
启动它,并查看日志 (sudo journalctl -u nginx
) 找原因。 - 检查IP地址: 确认你访问的IP地址是正确的公网IP。
- 服务商安全组: 如果你用的是云服务器,别忘了检查云平台本身的安全组(Security Group)或网络ACL规则,确保入站的80端口是开放的。
搞定!Nginx已经成功入驻你的服务器了。这只是万里长征第一步,但绝对是坚实的一步。现在,你的服务器已经具备了对外提供Web服务的能力。