欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Nginx 和Apache 中的虚拟主机的概念

程序员文章站 2022-06-22 12:15:52
在部署环境的时候,有时候会引用到虚拟主机的概念,什么是虚拟主机呢,博主之前一直把虚拟主机的概念没搞清楚,导致在部署的时候,一直动不动就404 ,或者500,或者服务器不通 所以,什么是虚拟主机呢? 虚拟主机概念大致同虚拟机的概念。 如果你有两个不同域名的网站,但是你只有一台服务器,这时候怎么办?其实 ......

 在部署环境的时候,有时候会引用到虚拟主机的概念,什么是虚拟主机呢,博主之前一直把虚拟主机的概念没搞清楚,导致在部署的时候,一直动不动就404 ,或者500,或者服务器不通

所以,什么是虚拟主机呢? 虚拟主机概念大致同虚拟机的概念。

如果你有两个不同域名的网站,但是你只有一台服务器,这时候怎么办?其实利用nginx或者apache都可以帮你用一台机器来模拟多台机器作为服务器提供服务。

虚拟主机,就是把一台物理服务器划分成多个“虚拟”的服务器,每一个虚拟主机都可以有独立的域名和独立的目录

nginx的虚拟主机就是通过nginx.conf中server节点指定的,想要设置多个虚拟主机,配置多个server节点即可

先看一个最简单的虚拟主机配置示例

server { 
  listen 80; 
server_name a.test.com;

location / { 
  index index.html; 
  root /home/www/host_a/; 
    } 
}

listen 80; 
指定这个虚拟主机监听的是80端口
server_name a.test.com;
指定这个虚拟主机名为a.test.com,当用户访问a.test.com时,就有这个虚机主机进行处理。

 

 

多台虚拟主机
(1)对两个域名配置相应的虚拟主机,指定不同的目录

a.test.com -> /home/www/a
b.test.com -> /home/www/b
配置
server { 
    listen 80; 
    server_name a.test.com;

#开启网站目录文件列表功能,访问目录时列出其中的文件列表,默认不开启
    autoindex on;
    index index.html; 
    root /home/www/a/; 
    }

server { 
    listen 80; 
    server_name b.test.com;

    index index.html; 
    root /home/www/b/;

#禁止对self目录的访问
    location /(self)/ { 
    deny all; 
        } 
    }