如何在 Ubuntu 12.04 LTS 上设置 nginx 虚拟主机(服务器块)
状态:已弃用
本文涵盖不再受支持的 Ubuntu 版本。如果您目前正在运行运行 Ubuntu 12.04 的服务器,我们强烈建议您升级或迁移到受支持的 Ubuntu 版本:
- 升级到 Ubuntu 14.04。
- 从 Ubuntu 14.04 升级到 Ubuntu 16.04
- 将服务器数据迁移到支持的版本
原因:
请参阅:
关于虚拟主机
虚拟主机用于在一台服务器上运行多个网站或域。注意:根据 nginx 网站,虚拟主机在 nginx 上称为 Server Blocks。但是,为了方便与 apache 进行比较,我在本教程中将它们称为虚拟主机。
设置
本教程中的步骤要求用户在虚拟专用服务器上具有根权限。您可以在初始服务器设置教程的第 3 步和第 4 步中了解如何进行设置。此外,如果我在某个步骤中引用用户,我将使用名称 www。您可以实施任何适合您的用户名。
此外,您需要在 VPS 上安装 nginx。如果不是这种情况,您可以使用以下命令下载它:
sudo apt-get install nginx
第一步——创建一个新目录
创建虚拟主机的第一步是创建一个目录,我们将在其中保存新网站的信息。
这个位置将是你稍后在 nginx 虚拟配置文件中的 Document Root。通过将 -p 添加到代码行,该命令会自动为新目录生成所有父目录。
sudo mkdir -p /var/www/example.com/public_html
您将需要指定一个实际的 DNS 批准域或 IP 地址,以测试虚拟主机是否正常工作。在本教程中,我们将使用 example.com 作为正确域名的占位符。
但是,如果您想使用未经批准的域名来测试该过程,您将在第六步中找到有关如何使其在本地计算机上运行的信息。
第二步——授予权限
我们需要将目录的所有权授予正确的用户,而不是仅仅将其保留在根系统上。您可以将下面的“www-data”替换为适当的用户名。
sudo chown -R www-data:www-data /var/www/example.com/public_html
此外,确保每个人都能阅读我们的新文件也很重要。
sudo chmod 755 /var/www
现在你已经完成了权限。
第三步——创建页面
我们需要在我们之前创建的目录中创建一个名为 index.html 的新文件。
sudo nano /var/www/example.com/public_html/index.html
我们可以在文件中添加一些文本,这样当网站重定向到虚拟主机时我们就会看到一些东西。
<html>
<head>
<title>www.example.com</title>
</head>
<body>
<h1>Success: You Have Set Up a Virtual Host</h1>
</body>
</html>
保存并退出
第四步——创建新的虚拟主机文件
下一步是创建一个包含我们所有虚拟主机信息的新文件。
nginx 在 sites-available 目录 (/etc/nginx/sites-available) 中为我们提供了此文件的布局,我们只需将文本复制到一个新的自定义文件中:
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/example.com
第五步——设置虚拟主机
打开新的虚拟主机文件——您将在其中看到设置虚拟主机所需的所有信息。
sudo nano /etc/nginx/sites-available/example.com
我们需要在这几行中进行一些更改:
server {
listen 80; ## listen for ipv4; this line is default and implied
#listen [::]:80 default ipv6only=on; ## listen for ipv6
root /var/www/example.com/public_html;
index index.html index.htm;
# Make site accessible from http://localhost/
server_name example.com;
}
- 取消注释“listen 80”,这样通过该端口进入的所有流量都将定向到该站点
- 更改根扩展名以匹配我们在第一步中创建的目录。如果文档根目录不正确或不存在,您将无法设置虚拟主机。
- 将服务器名称更改为您的 DNS 批准的域名,或者,如果您没有,您可以使用您的 IP 地址
您不需要对此文件进行任何其他更改。保存并退出。
最后一步是通过在站点可用目录和站点启用目录之间创建符号链接来激活主机。在 apache 中,完成此操作的命令是“a2ensite”——nginx 没有等效的快捷方式,但它仍然是一个简单的命令。
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com
为了避免“服务器名称冲突错误”并确保访问您的站点时显示正确的信息,您可以删除默认的 nginx 服务器块:
sudo rm /etc/nginx/sites-enabled/default
第六步——重启nginx
我们对配置做了很多更改。重新启动 nginx 并使更改可见。
sudo service nginx restart
可选第七步——设置本地主机
如果您已将域名指向服务器的 IP 地址,则可以跳过此步骤——您不需要设置本地主机。您的虚拟主机应该可以工作。但是,如果想在不连接到实际域名的情况下试用新的虚拟主机,您可以单独在计算机上设置本地主机。
要继续执行此步骤,您需要知道计算机的管理密码,否则您将需要使用实际域名来测试虚拟主机。
如果您使用的是 Mac 或 Linux,请访问计算机上的根用户 (su
) 并打开您的主机文件:
nano /etc/hosts
如果您使用的是 Windows 计算机,则可以在 Microsoft 站点上找到更改主机文件的说明
您可以将本地主机详细信息添加到此文件,如下例所示。只要该行在那里,将您的浏览器指向 example.com 就会为您提供相应 IP 地址的所有虚拟主机详细信息。
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
#Virtual Hosts
12.34.56.789 www.example.com
但是,完成后从本地主机文件夹中删除这些组成的地址可能是个好主意,以避免将来出现任何混淆。
第八步——结果:查看您的虚拟主机的运行情况
完成虚拟主机设置后,您可以在线查看它的外观。在浏览器中输入您的域名或 IP 地址(即 http://12.34.56.789)
它看起来应该有点像我的handy 要添加更多虚拟主机,只需重复上述过程,注意用适当的域名设置新的文档根目录,然后创建并激活新的虚拟主机文件。 设置虚拟主机后,您可以继续安装 FTP 服务器创建更多虚拟主机
查看更多