使用Nginx创建基于端口的虚拟主机 (nginx 基于端口的虚拟主机)
如何
在Web服务器中,虚拟主机是一种常见的技术,它允许在单个服务器上托管多个网站。这种技术可以大大减少服务器数量,提高资源使用效率。通常,虚拟主机是基于主机名进行区分的,这意味着它们使用不同的域名进行访问。然而,在某些情况下,您可能需要根据端口而不是主机名来创建虚拟主机。在这篇文章中,我们将介绍如何。
步骤一:安装Nginx
Nginx是创建虚拟主机的流行Web服务器之一。在开始构建基于端口的虚拟主机之前,您需要先安装Nginx。在Linux上安装Nginx非常简单,您只需要运行以下命令:
“`shell
sudo apt-get update
sudo apt-get install nginx
“`
这将安装最新版本的Nginx并将其添加到系统的启动项中。
步骤二:创建虚拟主机配置文件
在Nginx中,虚拟主机配置文件存储在/sites-enabled目录中。在创建虚拟主机之前,您需要创建一个新的配置文件。在/etc/nginx/sites-avlable目录中创建一个名为mydomn的新文件:
“`shell
sudo nano /etc/nginx/sites-avlable/mydomn
“`
在编辑器中输入以下代码:
“`nginx
server {
listen 8080;
server_name example.com;
root /var/www/mydomn;
}
“`
此代码片段指示Nginx监听端口8080,然后将所有从域名example.com发来的请求路由到/var/www/mydomn目录中。
步骤三:启用虚拟主机配置
要启用新创建的虚拟主机配置文件,请将其符号链接到/sites-enabled目录中:
“`shell
sudo ln -s /etc/nginx/sites-avlable/mydomn /etc/nginx/sites-enabled/
“`
现在,您可以通过使用curl或您的Web浏览器来测试Nginx是否已成功配置:
“`shell
curl http://example.com:8080
“`
这将向您返回/var/www/mydomn目录中包含的任何内容。
步骤四:配置SSL
在使用基于端口的虚拟主机之前,您可能需要配置SSL,以确保数据在传输过程中是安全的。要配置SSL,请首先安装Certbot:
“`shell
sudo apt-get update
sudo apt-get install certbot python3-certbot-nginx
“`
接下来,在Nginx配置中添加以下代码以启用SSL:
“`nginx
server {
listen 8080;
server_name example.com;
root /var/www/mydomn;
# SSL Configuration
ssl_certificate /etc/letsencrypt/live/example.com/fullchn.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
# Redirect HTTP to HTTPS
if ($scheme != “https”) {
return 301 https://$server_name$request_uri;
}
}
“`
当您启用SSL后,您会注意到端口已更改为443。这是默认的SSL端口。
步骤五:重启Nginx
安装了新的虚拟主机并配置了SSL之后,您需要重启Nginx才能使更改生效。在Linux上,您可以通过以下命令来实现这一点:
“`shell
sudo systemctl restart nginx
“`
这将重启Nginx并使您的更改生效。
结论
的步骤比创建基于主机名的虚拟主机更为简单。它可以允许您轻松地将多个网站托管在同一台服务器上,同时确保它们的数据传输安全。如果您已经准备好创建一个基于端口的虚拟主机,请按照上述步骤进行操作。