使用Nginx配置多站点(也称为虚拟主机)可以让一台服务器同时托管多个域名或子域名的网站。以下是详细的步骤,帮助你配置Nginx多站点服务。
1. 准备工作
1.1 安装Nginx
如果你还没有安装Nginx,可以使用以下命令安装:
Ubuntu/Debian
sudo apt-get update sudo apt-get install nginx
CentOS
sudo yum install epel-release sudo yum install nginx
1.2 检查Nginx状态
安装完成后,启动Nginx并检查其状态:
sudo systemctl start nginx sudo systemctl enable nginx sudo systemctl status nginx
2. 配置多站点
2.1 创建站点配置文件
Nginx的站点配置文件通常位于/etc/nginx/sites-available/
目录下。你可以为每个站点创建一个单独的配置文件。
示例:为example.com
创建配置文件
sudo nano /etc/nginx/sites-available/example.com
配置内容
server { listen 80; server_name example.com www.example.com; root /var/www/example.com; # 网站根目录 index index.html index.htm; location / { try_files $uri $uri/ =404; } }
示例:为test.com
创建配置文件
sudo nano /etc/nginx/sites-available/test.com
配置内容
server { listen 80; server_name test.com www.test.com; root /var/www/test.com; # 网站根目录 index index.html index.htm; location / { try_files $uri $uri/ =404; } }
2.2 创建软链接
将配置文件链接到/etc/nginx/sites-enabled/
目录,以便Nginx加载这些配置。
为example.com
创建软链接
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
为test.com
创建软链接
sudo ln -s /etc/nginx/sites-available/test.com /etc/nginx/sites-enabled/
2.3 检查配置文件语法
在重新加载Nginx之前,检查配置文件的语法是否正确:
sudo nginx -t
如果输出显示syntax is ok
和test is successful
,则配置文件正确。
2.4 重新加载Nginx
重新加载Nginx以应用新的配置:
sudo systemctl reload nginx
3. 配置域名解析
确保你的域名(如example.com
和test.com
)指向服务器的IP地址。可以通过以下方式配置:
3.1 使用A记录
在域名注册商的管理面板中,为example.com
和test.com
添加A记录,指向服务器的IP地址。
3.2 使用CNAME记录(可选)
如果你希望使用www
子域名,可以为www.example.com
和www.test.com
添加CNAME记录,指向example.com
和test.com
。
4. 创建网站根目录
为每个站点创建对应的网站根目录,并放置网站文件。
为example.com
创建目录
sudo mkdir -p /var/www/example.com sudo chown -R $USER:$USER /var/www/example.com
为test.com
创建目录
sudo mkdir -p /var/www/test.com sudo chown -R $USER:$USER /var/www/test.com
添加示例HTML文件
在每个目录中创建一个简单的index.html
文件。
echo "<h1>Welcome to example.com</h1>" | sudo tee /var/www/example.com/index.html echo "<h1>Welcome to test.com</h1>" | sudo tee /var/www/test.com/index.html
5. 测试多站点配置
5.1 访问站点
在浏览器中访问http://example.com
和http://test.com
,确保每个站点都能正常显示。
5.2 检查日志
如果遇到问题,可以检查Nginx的错误日志:
sudo tail -f /var/log/nginx/error.log
6. 配置SSL(可选)
如果你希望为站点启用HTTPS,可以使用Let’s Encrypt免费证书。
6.1 安装Certbot
sudo apt-get install certbot python3-certbot-nginx
6.2 自动配置SSL
为example.com
和test.com
自动配置SSL:
sudo certbot --nginx -d example.com -d www.example.com sudo certbot --nginx -d test.com -d www.test.com
6.3 验证SSL
访问https://example.com
和https://test.com
,确保SSL证书已正确配置。
7. 总结
通过以上步骤,你已经成功配置了Nginx多站点服务。每个站点都有独立的配置文件和根目录,可以轻松管理多个域名或子域名的网站。如果需要添加更多站点,只需重复上述步骤即可。