在当今数字化的时代,拥有一个高效稳定的网站服务器至关重要。Nginx 作为一款轻量级且功能强大的 Web 服务器,在 Ubuntu 系统上搭建和配置多站点是许多开发者和网站管理员的常见需求。本文将详细介绍如何在 Ubuntu 上搭建和配置多站点的 Nginx 服务器。
1. 安装 Nginx
首先,我们需要在 Ubuntu 系统上安装 Nginx。打开终端,输入以下命令更新系统软件包列表:
sudo apt update
更新完成后,输入以下命令来安装 Nginx:
sudo apt install nginx
安装过程中,系统会提示你确认安装,输入 “Y” 并回车即可。安装完成后,Nginx 会自动启动。你可以通过以下命令来验证 Nginx 是否正在运行:
sudo systemctl status nginx
如果看到 “active (running)” 字样,说明 Nginx 已经成功启动。你还可以在浏览器中输入服务器的 IP 地址,如果看到 Nginx 的欢迎页面,也证明安装成功。
2. 配置防火墙
为了确保服务器的安全,我们需要配置防火墙允许 Nginx 的流量通过。Ubuntu 系统默认使用 UFW 作为防火墙管理工具。输入以下命令允许 Nginx 的 HTTP 和 HTTPS 流量:
sudo ufw allow 'Nginx HTTP' sudo ufw allow 'Nginx HTTPS'
你可以通过以下命令查看防火墙状态:
sudo ufw status
确保防火墙已经开启,并且允许了 Nginx 的相关流量。
3. 创建网站目录
接下来,我们要为每个网站创建对应的目录。假设我们要创建两个网站,分别是 “site1.example.com” 和 “site2.example.com”。输入以下命令创建网站目录:
sudo mkdir -p /var/www/site1.example.com/html sudo mkdir -p /var/www/site2.example.com/html
然后,我们需要设置目录的权限,确保 Nginx 有访问这些目录的权限:
sudo chown -R $USER:$USER /var/www/site1.example.com/html sudo chown -R $USER:$USER /var/www/site2.example.com/html sudo chmod -R 755 /var/www
现在,我们可以为每个网站创建一个简单的测试页面。以 “site1.example.com” 为例,输入以下命令创建一个 HTML 文件:
nano /var/www/site1.example.com/html/index.html
在打开的编辑器中输入以下内容:
<html>
<head>
<title>Welcome to Site 1</title>
</head>
<body>
<h1>This is Site 1</h1>
</body>
</html>按下 “Ctrl + X”,然后输入 “Y” 并回车保存文件。同样的方法,为 “site2.example.com” 创建一个类似的测试页面。
4. 创建 Nginx 配置文件
Nginx 的配置文件通常存放在 “/etc/nginx/sites-available/” 目录下。我们需要为每个网站创建一个对应的配置文件。输入以下命令创建 “site1.example.com” 的配置文件:
sudo nano /etc/nginx/sites-available/site1.example.com
在打开的编辑器中输入以下内容:
server {
listen 80;
listen [::]:80;
root /var/www/site1.example.com/html;
index index.html index.htm index.nginx-debian.html;
server_name site1.example.com;
location / {
try_files $uri $uri/ =404;
}
}这段配置文件的含义是:监听 80 端口,指定网站的根目录为 “/var/www/site1.example.com/html”,设置默认的索引文件,指定服务器名称为 “site1.example.com”,并配置了请求的处理规则。同样的方法,为 “site2.example.com” 创建一个类似的配置文件。
5. 启用配置文件
创建好配置文件后,我们需要将其链接到 “/etc/nginx/sites-enabled/” 目录下,以启用这些配置。输入以下命令:
sudo ln -s /etc/nginx/sites-available/site1.example.com /etc/nginx/sites-enabled/ sudo ln -s /etc/nginx/sites-available/site2.example.com /etc/nginx/sites-enabled/
在启用配置文件之前,我们需要检查配置文件是否有语法错误。输入以下命令进行检查:
sudo nginx -t
如果看到 “syntax is ok” 和 “test is successful” 字样,说明配置文件语法正确。然后,我们需要重新加载 Nginx 服务,使配置生效:
sudo systemctl reload nginx
6. 配置域名解析
为了能够通过域名访问我们的网站,我们需要配置域名解析。如果你使用的是域名注册商提供的 DNS 服务,登录到域名管理界面,添加两条 A 记录,分别将 “site1.example.com” 和 “site2.example.com” 指向服务器的 IP 地址。如果你使用的是第三方 DNS 服务,按照相应的操作指南进行配置。
7. 配置 HTTPS
为了提高网站的安全性,我们建议为每个网站配置 HTTPS。可以使用 Let's Encrypt 提供的免费 SSL 证书。首先,安装 Certbot:
sudo apt install certbot python3-certbot-nginx
安装完成后,输入以下命令为 “site1.example.com” 获取 SSL 证书:
sudo certbot --nginx -d site1.example.com
按照提示输入你的邮箱地址,并同意相关条款。Certbot 会自动为你的网站配置 HTTPS。同样的方法,为 “site2.example.com” 获取 SSL 证书。
8. 定期更新证书
Let's Encrypt 的 SSL 证书有效期为 90 天,需要定期更新。Certbot 提供了自动更新的功能。输入以下命令测试自动更新:
sudo certbot renew --dry-run
如果测试成功,系统会自动在证书到期前更新证书。
9. 监控和维护
搭建好多站点的 Nginx 服务器后,我们需要对其进行监控和维护。可以使用工具如 Prometheus 和 Grafana 来监控 Nginx 的性能指标,如请求响应时间、吞吐量等。同时,定期备份网站数据和配置文件,以防止数据丢失。
通过以上步骤,我们成功地在 Ubuntu 上搭建和配置了多站点的 Nginx 服务器。这种配置方式不仅可以提高服务器的利用率,还可以为不同的网站提供独立的管理和配置。希望本文对你有所帮助。