Nginx 是一个高性能的 HTTP 和反向代理服务器,能够轻松地为多个域名设置虚拟主机。通过虚拟主机配置,可以实现在同一台服务器上托管多个独立网站,每个网站对应不同的域名。本文将详细介绍如何在 Nginx 中为两个不同域名设置虚拟主机的具体步骤。
准备工作
1. 确保 Nginx 已正确安装:
确保你的服务器上已经安装了 Nginx,并且可以通过命令行启动和停止 Nginx 服务。你可以使用以下命令来检查 Nginx 是否已正确安装:
`sudo systemctl status nginx`
如果 Nginx 没有安装,可以通过包管理器进行安装,例如在 Ubuntu 上可以使用 `sudo apt install nginx` 进行安装。
2. 准备域名解析:
确保你已经拥有两个不同的域名(如 example1.com 和 example2.com),并且这两个域名已经正确解析到你的服务器 IP 地址。你可以通过修改 DNS 设置或使用本地 `/etc/hosts` 文件进行测试。
创建虚拟主机配置文件
1. 创建站点目录:
为每个域名创建独立的网站根目录。假设我们将第一个域名的文件放在 `/var/www/example1.com`,第二个域名的文件放在 `/var/www/example2.com`。
`sudo mkdir -p /var/www/example1.com/html`
`sudo mkdir -p /var/www/example2.com/html`
2. 创建默认页面:
为每个域名创建一个简单的 HTML 文件作为测试页面。例如,可以在 `/var/www/example1.com/html/index.html` 和 `/var/www/example2.com/html/index.html` 中分别创建内容不同的页面。
3. 配置虚拟主机:
接下来,我们需要为每个域名创建单独的 Nginx 配置文件。通常,这些配置文件位于 `/etc/nginx/sites-available/` 目录下。
创建第一个域名的配置文件:
`sudo nano /etc/nginx/sites-available/example1.com`
在文件中添加以下内容:
“`nginx
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`
并在文件中添加:
“`nginx
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;
}
}
“`
启用虚拟主机配置
1. 创建符号链接:
为了使 Nginx 识别这些配置文件,我们需要在 `/etc/nginx/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/`
2. 测试配置文件:
在重启 Nginx 之前,建议先测试配置文件是否正确。使用以下命令进行测试:
`sudo nginx -t`
如果测试结果显示没有错误,则可以继续下一步。
3. 重启 Nginx:
重启 Nginx 以应用新的配置:
`sudo systemctl restart nginx`
验证配置
现在,打开浏览器并访问 `http://example1.com` 和 `http://example2.com`,你应该能够看到各自对应的网页内容。如果一切正常,说明你已经成功为两个不同域名设置了虚拟主机。
通过以上步骤,我们成功地在 Nginx 中为两个不同域名设置了虚拟主机。每个域名都有独立的根目录和配置文件,确保它们可以独立运行。如果你需要为更多域名设置虚拟主机,只需重复上述步骤即可。
本文由阿里云优惠网发布。发布者:编辑员。禁止采集与转载行为,违者必究。出处:https://aliyunyh.com/154411.html
其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。