基于域名的虚拟主机允许您在同一台服务器上使用同一个IP地址托管多个网站。以下是配置步骤:
确保您已经: - 安装好Nginx - 拥有至少两个域名(例如example1.com和example2.com) - 这些域名已解析到您的服务器IP
为每个网站创建单独的目录:
sudo mkdir -p /var/www/example1.com/html
sudo mkdir -p /var/www/example2.com/html
设置适当的权限:
sudo chown -R $USER:$USER /var/www/example1.com/html
sudo chown -R $USER:$USER /var/www/example2.com/html
为每个网站创建测试页面:
# 网站1
echo "<h1>Welcome to Example1.com</h1>" > /var/www/example1.com/html/index.html
# 网站2
echo "<h1>Welcome to Example2.com</h1>" > /var/www/example2.com/html/index.html
在Nginx的sites-available
目录中为每个网站创建配置文件:
sudo nano /etc/nginx/sites-available/example1.com
内容如下:
server {
listen 80;
server_name example1.com www.example1.com;
root /var/www/example1.com/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
同样创建第二个网站的配置文件:
sudo nano /etc/nginx/sites-available/example2.com
内容如下:
server {
listen 80;
server_name example2.com www.example2.com;
root /var/www/example2.com/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
创建符号链接到sites-enabled
目录:
sudo ln -s /etc/nginx/sites-available/example1.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/example2.com /etc/nginx/sites-enabled/
测试配置是否有语法错误:
sudo nginx -t
如果没有错误,重启Nginx:
sudo systemctl restart nginx
sudo rm /etc/nginx/sites-enabled/default
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d example1.com -d www.example1.com
sudo certbot --nginx -d example2.com -d www.example2.com
在浏览器中访问: - http://example1.com - http://example2.com
应该看到各自不同的内容。
502 Bad Gateway错误:
403 Forbidden错误:
域名无法解析:
通过以上步骤,您已经成功配置了基于域名的Nginx虚拟主机。