Nginx中基于域名的虚拟主机配置

虚拟主机就是web服务里的一个独立的网站站点,这个站点对应独立的域名(IP),具有独立的程序和资源目录,可以独立的对外提供服务。这个独立的站点配置是在nginx.conf中使用server{}代码块标签来表示一个虚拟主机。

  如果每台linux服务器只运行了一个小网站,那么人气低,流量小的草根站长需要承担高额的服务器租赁费,也造成了硬件资源浪费。虚拟主机就是将一台服务器分割成多个“虚拟服务器”,每个站点使用各自的硬盘空间,由于省资源,省钱,众多网站都使用虚拟主机来部署网站。

  Nginx支持多个server{}标签,即支持多个虚拟主机站点。

  虚拟主机类型:
  - 基于域名的虚拟主机:通过不同的域名区分不同的虚拟主机,是企业应用最广的虚拟主机。
  - 基于端口的虚拟主机:就是通过不同的端口来区分不同的虚拟主机,此类虚拟主机对应的企业应用主要为公司内部的网站,例如:一些不希望直接对外提供用户访问的网站后台等,访问基于端口的虚拟主机地址里要带有端口,例如:http://www.baidu.com:80;
  - 基于IP的虚拟主机:通过不同的IP区分不同的虚拟主机,此类比较少见,一般不同业务需要使用多IP的场景都会在负载均衡器上进行VIP绑定;

  nginx可以自动识别用户请求的域名,根据不同的域名请求服务器传输不同的内容,只需要保证服务器上有一个可用的ip地址,配置好dns解析服务(etc/hosts是linux系统中本地dns解析的配置文件)。

  下面我们演示使用windows系统的浏览器去访问虚拟机(ip为192.168.29.207)中的ngnix服务器,因此需要配置windows中的dns解析文件hosts(路径一般为C:\Windows\System32\drivers\etc\hosts),hosts文件中写入如下两行内容:

1.进入hosts文件写入以下两行内容

以记事本方式打开,保存退出,若无权限以管理员身份打开或者修改权限。

192.168.29.207 web.wenge.com
192.168.29.207 blog.wenge.com

Nginx中基于域名的虚拟主机配置_第1张图片

 

 

2.修改nginx配置文件nginx.conf

在server{}的后面加上以下命令

cd /usr/local/nginx/conf   #nginx.conf文件在此目录中 

server {
        listen       80;
        server_name  blog.wenge.com blog1.wenge.com blog2.wenge.com;      #可以是多个域名并列,域名之间用空格 隔开,
              location / {
            root   /www/blog;
            index  index.html index.htm;
        }
  }

server {
        listen       80;
        server_name  web.wenge.com;    
              location / {
            root   /www/web;
            index  index.html index.htm;
        }
  }
  
/usr/local/nginx/sbin/nginx -t  ##检查语法

 3.准备两个虚拟主机的网页根目录内容

mkdir -p /www/{web/,blog/}
cd /www
echo "Welcome to wenge's web-server">>web/index.html 
echo "Welcome to wenge's blog-server">>blog/index.html

 开启nginx,若已经启动,重启nginx

/usr/local/nginx/sbin/nginx              #开启nginx 
/usr/local/nginx/sbin/nginx  -s stop     #关闭nginx
/usr/local/nginx/sbin/nginx  -s reload   #重启nginx 

4.在浏览器分别访问 web.wenge.com,blog.wenge.com

Nginx中基于域名的虚拟主机配置_第2张图片

 Nginx中基于域名的虚拟主机配置_第3张图片

 

你可能感兴趣的:(nginx,linux,运维)