在Linux环境下,通过配置Nginx,可以实现单个IP地址下的多虚拟主机,此过程涉及创建多个虚拟主机配置文件,并使用不同的server_name来区分各个虚拟主机,每个配置文件通常包含网站的基本设置、文档根目录、错误页面等信息,通过Nginx的负载均衡功能,还可以进一步优化性能和扩展性。
sudo apt-get update sudo apt-get install nginx
在Nginx的主配置目录(通常是 /etc/nginx/nginx.conf
或 /etc/nginx/sites-available/
)中创建一个新的配置文件,创建名为 example.com
的配置文件,用于配置 example.com
这个域名。
sudo nano /etc/nginx/sites-available/example.com
在该文件中添加如下配置:
server { listen 80; server_name example.com www.example.com; root /var/www/example.com; index index.html index.htm; location / { try_files $uri $uri/ =404; } }
这里配置了两个子域名:example.com
和 www.example.com
,并且指定了它们的根目录为 /var/www/example.com
。try_files
指令确保当请求不匹配任何静态文件时,Nginx会继续检查是否是一个有效的目录,并尝试以静态文件的形式返回。
为其他域名创建类似的配置文件,为 blog.example.com
创建:
sudo nano /etc/nginx/sites-available/blog.example.com
添加如下配置:
server { listen 80; server_name blog.example.com; root /var/www/blog.example.com; index index.html index.htm; location / { try_files $uri $uri/ =404; } }
为了使新创建的配置文件与Nginx一起工作,需要将其链接到 /etc/nginx/sites-enabled
目录,并确保其状态为“on”,执行以下命令:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/ sudo ln -s /etc/nginx/sites-available/blog.example.com /etc/nginx/sites-enabled/
然后检查配置文件是否已正确加载:
sudo nginx -t
如果一切正常,重新加载Nginx以应用更改:
sudo systemctl reload nginx
确保服务器上的防火墙允许HTTP(端口80)和HTTPS(端口443)流量,对于 ufw
防火墙,可以使用以下命令开放这些端口:
sudo ufw allow 80/tcp sudo ufw allow 443/tcp
在本地或远程访问测试域名,确保它们能够正确地映射到正确的Nginx配置文件上,访问 http://example.com
和 http://blog.example.com
应显示相应的网页内容。
通过上述步骤,你就可以在Linux服务器上成功使用Nginx实现单IP地址下的多虚拟主机配置,这样不仅能提高服务器的灵活性,还能有效地管理多个独立网站或服务。
热卖推荐 上云必备低价长效云服务器99元/1年,OSS 低至 118.99 元/1年,官方优选推荐
热卖推荐 香港、美国、韩国、日本、限时优惠 立刻购买