如何在 Ubuntu 22.04 上安装和配置 Nginx


嘿,朋友!想在你的 Ubuntu 22.04 服务器上搭建一个网站吗?Nginx 是一个非常棒的选择,它以高性能和稳定性著称,无论是个人博客还是大型商业网站,都能轻松应对。

这篇教程会像聊天一样,一步步带你安装和配置好 Nginx。别担心,我们准备了详细的代码和案例,保证你轻松上手!

第一步:准备工作,更新你的系统

在安装任何新软件之前,我们都应该先更新一下系统的软件包列表,确保我们用的是最新的软件源。这就像是做饭前要先洗菜一样,是个好习惯。

打开你的终端,输入下面的命令:

sudo apt update

接着,执行升级命令:

sudo apt upgrade

系统会提示你将要更新哪些软件包,按 Y 确认就行。

第二步:安装 Nginx

好了,准备工作做完了,现在我们来安装 Nginx。Ubuntu 的默认软件库里就有 Nginx,所以安装起来特别简单,一条命令就搞定。

sudo apt install nginx

安装过程中,系统会问你是否要继续,同样输入 Y 然后回车。很快,Nginx 就会安装在你的服务器上了。

第三步:配置防火墙,让网站能被访问

你的服务器上很可能跑着一个叫 UFW (Uncomplicated Firewall) 的防火墙。为了让外面的用户能访问到你的网站,我们需要给 Nginx 开个“绿灯”。

Nginx 在安装时,会自动向 UFW 注册几个应用配置,我们可以用下面的命令查看一下:

sudo ufw app list

你会看到类似这样的输出:

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

一般来说,我们推荐使用最严格的规则。如果你的网站还没配置 SSL 证书,就先只允许 HTTP 流量。

sudo ufw allow 'Nginx HTTP'

然后,检查一下防火墙的状态,确保规则已经生效了:

sudo ufw status

如果看到 Nginx HTTP 后面是 ALLOW,那就说明配置成功了!

第四步:检查 Nginx 是否在运行

安装完成后,Ubuntu 22.04 通常会自动启动 Nginx 服务。 我们可以用下面的命令来确认一下它的状态:

sudo systemctl status nginx

如果你看到 active (running) 的字样,那就说明 Nginx 正在欢快地运行着。

(这是一个示例图片链接,实际输出会是文本)

现在,打开你的浏览器,在地址栏输入你服务器的 IP 地址。如果一切顺利,你应该能看到一个欢迎页面,上面写着 “Welcome to nginx!”。 这表明 Nginx 已经成功安装并可以从网络上访问了。

不知道服务器 IP 地址?试试这个命令:

ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

第五步:管理 Nginx 服务

学会管理 Nginx 服务非常重要,这里有几个你必须知道的命令:

  • 停止 Nginx 服务:

    sudo systemctl stop nginx
  • 启动 Nginx 服务:

    sudo systemctl start nginx
  • 重启 Nginx 服务:

    sudo systemctl restart nginx
  • 重新加载配置 (推荐): 当你修改了配置文件后,用这个命令可以让 Nginx 在不中断服务的情况下应用新配置。

    sudo systemctl reload nginx
  • 设置开机自启:

    sudo systemctl enable nginx

第六步:实战案例 - 配置你自己的网站 (Server Blocks)

只显示默认页面当然不够,我们来配置一个属于自己的网站。在 Nginx 中,这叫做“服务器块” (Server Blocks),它允许你在同一台服务器上托管多个网站。

1. 创建网站目录

首先,我们为你的网站创建一个新的目录。通常我们把它放在 /var/www/ 目录下。假设你的域名是 your_domain.com

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

2. 创建一个示例页面

接下来,我们在这个新目录里创建一个简单的 HTML 文件作为网站首页。

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

在打开的编辑器里,粘贴下面的 HTML 代码:

<!DOCTYPE html>
<html>
<head>
    <title>欢迎来到我的网站!</title>
    <style>
        body {
            width: 35em;
            margin: 0 auto;
            font-family: Tahoma, Verdana, Arial, sans-serif;
        }
    </style>
</head>
<body>
    <h1>太棒了! 我的 Nginx 网站正常工作!</h1>
    <p>如果你看到了这个页面,说明你已经成功配置了 Nginx 服务器块。</p>
</body>
</html>

Ctrl+X,然后按 YEnter 保存并关闭文件。

3. 创建服务器块配置文件

现在,我们需要为这个网站创建一个新的 Nginx 配置文件。

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

然后,把下面的配置代码粘贴进去。记得把 your_domain.com 换成你自己的域名。

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

配置解析:

  • listen 80;: 监听 IPv4 的 80 端口。
  • listen [::]:80;: 监听 IPv6 的 80 端口。
  • root /var/www/your_domain.com/html;: 指定网站文件的根目录。
  • index index.html ...;: 定义默认的索引文件。
  • server_name your_domain.com www.your_domain.com;: 匹配用户的请求域名。
  • location / { ... }: 定义如何处理进来的请求。

4. 启用新的服务器块

配置文件创建好了,但 Nginx 还不知道它。我们需要在 sites-enabled 目录里创建一个指向它的“快捷方式”(符号链接),来告诉 Nginx 加载这个配置。

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

5. 测试并重启 Nginx

在重启 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

最后,重启 Nginx 来应用所有更改:

sudo systemctl restart nginx

现在,再次访问你的服务器 IP 地址或者你的域名 http://your_domain.com,你就应该能看到你刚刚创建的那个漂亮的欢迎页面了!

总结

恭喜你!你已经成功在 Ubuntu 22.04 上安装并配置了 Nginx,还为自己的网站设置了一个独立的服务器块。从这里开始,你就可以上传你真正的网站文件,开始你的建站之旅了。Nginx 的功能远不止这些,它还可以用作反向代理、负载均衡等等,等待你去探索!


  目录