从零开始:在Linux系统上部署Nginx Web服务器 – wiki词典

从零开始:在Linux系统上部署Nginx Web服务器

Nginx (pronounced “engine-x”) 是一个高性能的 Web 服务器、反向代理服务器以及电子邮件(IMAP/POP3/SMTP)代理服务器。它以其稳定性、丰富的功能集、简单的配置和低资源消耗而闻名。本指南将详细介绍如何在 Linux 系统上从零开始部署 Nginx Web 服务器。

先决条件

在开始之前,请确保您具备以下条件:

  1. 一台正在运行的 Linux 服务器(例如,Ubuntu, CentOS, Debian 等)。
  2. 具有 sudoroot 权限的用户账户。
  3. 对 Linux 命令行的基本了解。

第一步:更新软件包列表

在安装任何新软件之前,一个好的习惯是更新系统的软件包列表,以确保您获取的是最新的软件版本和安全更新。

对于 Ubuntu/Debian 系统:

bash
sudo apt update
sudo apt upgrade

对于 CentOS/RHEL/Fedora 系统:

“`bash
sudo dnf update

或者,对于较旧的系统

sudo yum update
“`


第二步:安装 Nginx

Nginx 通常在大多数 Linux 发行版的默认软件仓库中都可用。

在 Ubuntu/Debian 上安装 Nginx:

bash
sudo apt install nginx

在 CentOS/RHEL/Fedora 上安装 Nginx:

“`bash
sudo dnf install nginx

或者

sudo yum install nginx
“`

安装过程会自动处理所有依赖项,并将 Nginx 安装为一个系统服务。


第三步:管理 Nginx 服务

安装完成后,Nginx 服务可能不会自动启动。您需要手动启动它,并设置为开机自启。

“`bash

启动 Nginx 服务

sudo systemctl start nginx

设置 Nginx 开机自启

sudo systemctl enable nginx

查看 Nginx 服务状态

sudo systemctl status nginx
“`

其他常用的 Nginx 服务管理命令:

“`bash

停止 Nginx 服务

sudo systemctl stop nginx

重启 Nginx 服务

sudo systemctl restart nginx

重新加载配置文件(无需重启服务)

sudo systemctl reload nginx
“`


第四步:配置防火墙

如果您的服务器启用了防火墙(例如 ufwfirewalld),您需要允许 HTTP 和 HTTPS 流量通过。

对于使用 ufw 的系统 (Ubuntu/Debian):

ufw 在安装时会注册一些应用配置文件。

“`bash

查看可用的应用配置

sudo ufw app list
“`

您会看到类似以下的输出:

Available applications:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH

  • Nginx HTTP: 只允许 HTTP 流量(端口 80)。
  • Nginx HTTPS: 只允许 HTTPS 流量(端口 443)。
  • Nginx Full: 同时允许 HTTP 和 HTTPS 流量。

根据您的需求选择一个。通常,允许两者是比较好的选择。

“`bash

允许 Nginx HTTP 和 HTTPS 流量

sudo ufw allow ‘Nginx Full’

重新加载防火墙规则

sudo ufw reload

检查防火墙状态

sudo ufw status
“`

对于使用 firewalld 的系统 (CentOS/RHEL/Fedora):

“`bash

允许 HTTP 和 HTTPS 流量(–permanent 使其永久生效)

sudo firewall-cmd –permanent –add-service=http
sudo firewall-cmd –permanent –add-service=https

重新加载防火墙规则

sudo firewall-cmd –reload

查看已开放的服务

sudo firewall-cmd –list-services
“`


第五步:验证 Nginx 安装

现在,Nginx 应该已经成功安装并运行。您可以通过在浏览器中访问您的服务器 IP 地址来验证。

打开浏览器,输入:

http://你的服务器IP地址

如果一切正常,您应该会看到 Nginx 的默认欢迎页面,通常标题是 “Welcome to nginx!”。

如果您不知道服务器的公网 IP,可以使用以下命令查找:

bash
curl -4 icanhazip.com


第六步:了解 Nginx 目录结构

了解 Nginx 的关键目录和文件对于后续配置至关重要。

  • /etc/nginx: Nginx 的主配置文件目录。
    • nginx.conf: Nginx 的主配置文件。
    • sites-available: 用于存储所有虚拟主机(Server Blocks)配置文件的目录。
    • sites-enabled: 存放 sites-available 目录中配置文件的符号链接。只有在这里面的配置文件才会被 Nginx 加载。
  • /var/log/nginx: Nginx 的日志文件目录(access.logerror.log)。
  • /var/www/html: 默认的网站根目录,存放网页文件。

第七步:配置一个简单的 Server Block(虚拟主机)

“Server Block”(类似于 Apache 中的 “Virtual Host”)允许您在同一台服务器上托管多个网站。

让我们为 your_domain.com 创建一个 Server Block。

1. 创建网站根目录

为您的网站创建一个新的目录来存放文件。

bash
sudo mkdir -p /var/www/your_domain.com/html

2. 设置目录权限

确保 Nginx 进程有权访问这个目录。

bash
sudo chown -R $USER:$USER /var/www/your_domain.com/html
sudo chmod -R 755 /var/www/your_domain.com

3. 创建一个示例页面

在您的新网站目录中创建一个 index.html 文件。

bash
nano /var/www/your_domain.com/html/index.html

在文件中添加以下内容:

“`html




Welcome to your_domain.com!

Success! The your_domain.com server block is working!


“`

保存并关闭文件。

4. 创建 Server Block 配置文件

sites-available 目录中为您的域名创建一个新的配置文件。

bash
sudo nano /etc/nginx/sites-available/your_domain.com

将以下配置粘贴到文件中,并确保将 your_domain.com 替换为您的实际域名:

“`nginx
server {
listen 80;
listen [::]:80;

root /var/www/your_domain.com/html;
index index.html index.htm index.nginx-debian.html;

server_name your_domain.com www.your_domain.com;

location / {
    try_files $uri $uri/ =404;
}

}
“`

5. 启用新的 Server Block

通过在 sites-enabled 目录中创建一个指向配置文件的符号链接来启用它。

bash
sudo ln -s /etc/nginx/sites-available/your_domain.com /etc/nginx/sites-enabled/

6. 测试 Nginx 配置

在重新启动 Nginx 之前,务必测试配置文件的语法是否正确。

bash
sudo nginx -t

如果一切正常,您应该看到如下输出:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

7. 重启 Nginx

使更改生效。

bash
sudo systemctl restart nginx


第八步:测试新的 Server Block

如果您使用的是真实的域名,并且已经将 DNS 解析到您的服务器 IP,现在您可以在浏览器中访问 http://your_domain.com,应该会看到您刚刚创建的 “Success!” 页面。

如果您没有域名,可以在本地修改 hosts 文件来模拟。

  • Linux/macOS: 编辑 /etc/hosts
  • Windows: 编辑 C:\Windows\System32\drivers\etc\hosts

添加以下行:

你的服务器IP地址 your_domain.com

保存文件后,刷新浏览器,您就能看到新的网站了。


结论

恭喜!您已经成功在 Linux 服务器上部署了 Nginx,并配置了一个 Server Block 来托管网站。从这里开始,您可以进一步探索 Nginx 的强大功能,例如配置 SSL/TLS 以启用 HTTPS、设置反向代理、实现负载均衡等。

滚动至顶部