服务器块
尽管 nginx 更喜欢术语“服务器块”——这些只是虚拟主机,允许用户在单个 VPS 上运行多个网站或域。 尽管我们将在本教程中使用 nginx,但出于传统目的和与 Apache 的简单比较,我们可以简单地将它们称为虚拟主机。
1) 设置你的 VPS
本教程中的步骤要求用户在虚拟专用服务器上具有 root 权限。 您可以在初始服务器设置教程 (步骤 3 和 4)。 此外,我将在本教程中引用“用户”——您可以随意将其替换为您喜欢的任何用户名。
你需要在你的 VPS 上已经安装了 nginx。 如果不是这种情况,您可以使用以下命令下载它:
sudo apt-get install nginx
*注意: 您需要指定一个实际的 DNS 批准域 或 IP 地址来测试虚拟主机是否正常工作。 在本教程中,我将简单地使用“example.com”来指示您何时应该插入正确的域名。
2)创建一个新目录
有必要创建一个目录来保存新网站的信息。 稍后,此位置将成为您在 Apache 虚拟配置文件中的文档根目录。
通过在代码行中添加 -p,该命令会自动为新目录生成所有父目录。
sudo mkdir -p /var/www/example.com/public_html
3) 对您的 VPS 的权限
请务必记住将目录的所有权授予正确的用户。 如果您不这样做,它将保留在根系统上。 请按照以下命令完成此操作:
sudo chown -R user:user /var/www/example.com/public_html
sudo chmod 755 /var/www
这不仅可以确保所有权属于正确的用户——第二个命令还可以确保每个人都能够读取您的新文件。
4) 创建页面
本教程将使用 nano 在您的 VPS 上编辑配置文件。 通常,它比其他文本编辑器更易于使用; 但是,如果您更喜欢 vi 等另一个,请随意使用任何一个。
我们需要在之前创建的目录中创建一个名为 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>
保存并退出。
5) 创建新的虚拟主机文件
下一步是创建一个包含我们所有虚拟主机信息的新文件。
方便的是,nginx 在站点可用目录 (/etc/nginx/sites-available) 中为我们提供了此文件的布局。 您只需将文本复制到一个新的自定义文件中:
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/example.com
6) 虚拟主机
打开新的虚拟主机文件——您将看到在其中设置虚拟主机所需的所有信息。
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 地址
保存并退出。
最后,您需要通过在站点可用目录和云服务器上启用站点的目录之间创建符号链接来激活主机。 这是一个容易跳过的步骤,因此请确保输入以下命令:
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
7) 让我们上网吧
完成虚拟主机设置后,在浏览器中输入您的域名或 IP 地址。 它应该显示一条消息,例如:Success-- You Have Set Up a Virtual Host。
恭喜! 现在要在您的云服务器上添加额外的虚拟主机,您只需使用新的文档根目录/适当的域名重复上述过程即可。