Nginx 是一个高性能的 HTTP 和反向代理服务器,广泛用于托管多个网站和服务。在 Linux 系统上配置多站点(也称为虚拟主机)允许你在同一台服务器上运行多个独立的网站。
Nginx 支持两种主要的多站点配置类型:
以下是一个基于域名的虚拟主机配置示例:
sudo mkdir -p /var/www/site1.com/public_html
sudo mkdir -p /var/www/site2.com/public_html
sudo chown -R www-data:www-data /var/www/site1.com/public_html
sudo chown -R www-data:www-data /var/www/site2.com/public_html
sudo chmod -R 755 /var/www
在 /etc/nginx/sites-available/
目录下创建两个配置文件:
site1.com
server {
listen 80;
server_name site1.com www.site1.com;
root /var/www/site1.com/public_html;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
site2.com
server {
listen 80;
server_name site2.com www.site2.com;
root /var/www/site2.com/public_html;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
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/
sudo nginx -t
sudo systemctl restart nginx
原因:可能是 DNS 解析问题或 Nginx 配置错误。
解决方法:
原因:Nginx 进程没有足够的权限访问站点目录。
解决方法:
chown
和 chmod
命令设置正确的文件权限。原因:SSL 证书配置不正确或不兼容。
解决方法:
通过以上步骤和解决方案,你可以有效地在 Linux 上使用 Nginx 配置和管理多个站点。
领取专属 10元无门槛券
手把手带您无忧上云