在Ubuntu上配置Nginx多站点(虚拟主机)是一个常见的任务,以下是一些基本的配置技巧:
首先,确保你已经安装了Nginx。如果没有安装,可以使用以下命令进行安装:
sudo apt update
sudo apt install nginx
为每个站点创建一个目录,并将网站的文件放在这些目录中。例如:
sudo mkdir -p /var/www/site1.com/html
sudo mkdir -p /var/www/site2.com/html
为每个站点创建一个Nginx配置文件。这些文件通常位于/etc/nginx/sites-available/目录中,并通过符号链接到/etc/nginx/sites-enabled/目录中。
/etc/nginx/sites-available/site1.com)server {
listen 80;
server_name site1.com www.site1.com;
root /var/www/site1.com/html;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
error_page 404 /404.html;
location = /404.html {
root /var/www/site1.com/html;
}
}
/etc/nginx/sites-available/site2.com)server {
listen 80;
server_name site2.com www.site2.com;
root /var/www/site2.com/html;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
error_page 404 /404.html;
location = /404.html {
root /var/www/site2.com/html;
}
}
使用ln命令创建符号链接,使配置文件生效:
sudo ln -s /etc/nginx/sites-available/site1.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/site2.com /etc/nginx/sites-enabled/
在重新加载Nginx之前,检查配置文件是否有语法错误:
sudo nginx -t
如果配置文件没有问题,重新加载Nginx以应用更改:
sudo systemctl reload nginx
确保你的域名(例如site1.com和site2.com)已经指向你的服务器IP地址。你可以在你的域名注册商的管理面板中进行配置。
如果你希望为站点启用HTTPS,可以使用Let’s Encrypt免费获取SSL证书,并配置Nginx使用这些证书。
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d site1.com -d www.site1.com
sudo certbot --nginx -d site2.com -d www.site2.com
Certbot会自动更新Nginx配置文件以启用HTTPS。
打开浏览器,访问你的站点(例如http://site1.com和http://site2.com),确保它们正常工作。
通过以上步骤,你应该能够在Ubuntu上成功配置多个Nginx站点。如果有任何问题,请检查Nginx错误日志以获取更多信息:
sudo tail -f /var/log/nginx/error.log