修改Nginx配置文件,添加server容器实现基于域名、基于IP和基于端口的虚拟主机。

3.1 问题

沿用练习二,配置基于域名的虚拟主机,实现以下目标:

实现两个基于域名的虚拟主机,域名分别为www.a.com和www.b.com
对域名为www.a.com的站点进行用户认证,用户名称为tom,密码为123456

3.2 方案

修改Nginx配置文件,添加server容器实现虚拟主机功能;对于需要进行用户认证的虚拟主机添加auth认证语句。

虚拟主机一般可用分为:基于域名、基于IP和基于端口的虚拟主机。
3.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:修改配置文件

1)修改Nginx服务配置,添加相关虚拟主机配置如下

[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
.. ..
server {
        listen       80;                                      //端口
        server_name  www.a.com;                                //域名
auth_basic "Input Password:";                        //认证提示符
        auth_basic_user_file "/usr/local/nginx/pass";        //认证密码文件
location / {
            root   html;                                    //指定网站根路径
            index  index.html index.htm;
       }
       
}
… …
    server {
        listen  80;                                        //端口
        server_name  www.b.com;                                //域名
location / { 
root   www;                                 //指定网站根路径
index  index.html index.htm;
}
}

2)创建网站根目录及对应首页文件

[root@proxy ~]# mkdir /usr/local/nginx/www
[root@proxy ~]# echo "www" > /usr/local/nginx/www/index.html

3)重新加载配置

[root@proxy ~]# /usr/local/nginx/sbin/nginx -s reload
#请先确保nginx是启动状态,否则运行该命令会报错,报错信息如下:
#[error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)

步骤二:客户端测试

1)修改客户端主机192.168.4.10的/etc/hosts文件,进行域名解析

 [root@client ~]# vim /etc/hosts
192.168.4.5    www.a.com  www.b.com

2)登录192.168.4.10客户端主机进行测试

注意:请先关闭真实机的firefox,再SSH -X远程连接调用虚拟机的firefox。

[root@client ~]# firefox http://www.a.com            //输入密码后可以访问
[root@client ~]# firefox http://www.b.com            //直接访问

提示:或者直接使用真实主机做客户端主机验证,修改真实主机的/etc/hosts文件,直接使用真实主机的火狐浏览器访问也可以。

步骤三:扩展课外实验:其他类型的虚拟主机

1.基于端口的虚拟主机(参考模板)

server {
        listen       8080;                        //端口
        server_name  web1.example.com;          //域名
        ......
}
    server {
        listen       8000;                         //端口
        server_name  web1.example.com;           //域名
      .......
}

2.基于IP的虚拟主机(参考模板)

server {
        listen       192.168.0.1:80;              //IP地址与端口
        server_name  web1.example.com;          //域名
  ... ...
}
    server {
        listen       192.168.0.2:80;             //IP地址与端口
        server_name  web1.example.com;
... ...
}
发布了212 篇原创文章 · 获赞 8 · 访问量 5817

猜你喜欢

转载自blog.csdn.net/weixin_45843450/article/details/105263072
今日推荐