Nginx实现虚拟主机

心已入冬 提交于 2020-05-05 19:51:02

前言

Nginx的安装可参考https://my.oschina.net/staybug/blog/4254456

Nginx实现虚拟主机主要有两种方式,基于域名的虚拟主机和基于端口的虚拟主机。

1.基于域名的虚拟主机配置

两个域名指向同一台Nginx服务器,用户访问不同的域名显示不同的网页类容。我设置的两个域名是a.comb.com,Nginx使用的虚拟机是192.168.2.10

1.1修改hosts文件

配置a.com、b.com和虚拟机192.168.2.10的映射关系,修改Windows下的hosts配置文件(文件位置:C:\Windows\System32\drivers\etc)。

1.2创建访问成功页面

在Linux中Nginx安装目录下创建两个欢迎页面,首先创建两个目录。

mkdir -p /usr/local/nginx/a_html
mkdir -p /usr/local/nginx/b_html

/usr/local/nginx/a_htmla.com域名访问的目录;/usr/local/nginx/b_htmlb.com访问的目录。目录中的内容使用Nginx自带的html文件,将/usr/local/nginx/html中的类容分别拷贝到上面两个目录中,并将a_html中index.html的<h1>标签体中的内容改为:Welcome to a nginx!;将b_html中index.html的<h1>标签体中的内容改为:Welcome to b nginx!。

1.3配置虚拟主机

修改/usr/local/nginx/conf/nginx.conf文件,配置两个虚拟主机a.com和b.com,就是在配置文件中添加两个server结点。配置文件中有一个默认的server结点,新添加的结点放到默认server结点同一层级。

server {
        listen 80;
        #访问路径
        server_name a.com;
        location / {
                #转发目的地
                root /usr/local/nginx/b_html;
                index index.html index.htm;
        }
    }
server {
        listen 80;
        server_name b.com;
        location / {
                root /usr/local/nginx/b_html;
                index index.html index.htm;
        }
    }

1.4测试

配置文件修改后需要重启Nginx才会生效。

访问a.com         页面显示Welcome to a nginx!

访问b.com          页面显示Welcome to b nginx!

2.基于端口的虚拟主机

Nginx对外提供8081和8082两个端口监听服务,请求8081端口访问上文中创建的/usr/local/nginx/a_html目录下的index.html;请求8082端口则访问上文中创建的/usr/local/nginx/b_html目录下的index.html

2.1配置虚拟主机

修改/usr/local/nginx/conf/nginx.conf文件,再添加两个server结点。

server {
        listen       8081;
        server_name  192.168.2.10;

        location / {
            root   /usr/local/nginx/a_html;
            index  index.html index.htm;
        }

    }
server {
        listen       8082;
        server_name  192.168.2.10;

        location / {
            root   /usr/local/nginx/b_html;
            index  index.html index.htm;
        }

    }

2.2测试

一样也要重启Nginx,配置文件才会生效,访问http://192.168.2.10:8080服务器将/usr/local/nginx/a_html/index.html响应给客户端,访问http://192.168.2.10:8081服务器将/usr/local/nginx/b_html/index.html响应给客户端。

 

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!