问题
沿用练习二,配置基于域名的虚拟主机,实现以下目标:
1.实现两个基于域名的虚拟主机,域名分别为www.a.com和www.b.com
2.对域名为www.a.com的站点进行用户认证,用户名称为tom,密码为123456
3.2 方案
修改Nginx配置文件,添加server容器实现虚拟主机功能;对于需要进行用户认证的虚拟主机添加auth认证语句。
虚拟主机一般可用分为:基于域名、基于IP和基于端口的虚拟主机。
3.3 步骤
实现此案例需要按照如下步骤进行。
步骤一:修改配置文件
1)修改Nginx服务配置,添加相关虚拟主机配置如下
1.[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
2... ..
3.server {
4. listen 80; //端口
5. server_name www.a.com; //域名
6.auth_basic "Input Password:"; //认证提示符
7. auth_basic_user_file "/usr/local/nginx/pass"; //认证密码文件
8.location / {
9. root html; //指定网站根路径
10. index index.html index.htm;
11. }
12.
13.}
14.… …
15.
16. server {
17. listen 80; //端口
18. server_name www.b.com; //域名
19.location / {
20.root www; //指定网站根路径
21.index index.html index.htm;
22.}
23.}
2)创建网站根目录及对应首页文件
1.[root@proxy ~]# mkdir /usr/local/nginx/www
2.[root@proxy ~]# echo "www" > /usr/local/nginx/www/index.html
3)重启nginx服务
1.[root@proxy ~]# /usr/local/nginx/sbin/nginx -s reload
2.#请先确保nginx是启动状态,否则运行该命令会报错,报错信息如下:
3.#[error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)
步骤二:客户端测试
1)修改客户端主机192.168.4.10的/etc/hosts文件,进行域名解析
1. [root@client ~]# vim /etc/hosts
2.192.168.4.5 www.a.com www.b.com
2)登录192.168.4.10客户端主机进行测试
注意:请先关闭真实机的firefox,再SSH -X远程连接调用虚拟机的firefox。
1.[root@client ~]# firefox http://www.a.com //输入密码后可以访问
2.[root@client ~]# firefox http://www.b.com //直接访问
提示:或者直接使用真实主机做客户端主机验证,修改真实主机的/etc/hosts文件,直接使用真实主机的火狐浏览器访问也可以。
步骤三:扩展课外实验:其他类型的虚拟主机
1.基于端口的虚拟主机(参考模板)
1.server {
2. listen 8080; //端口
3. server_name web1.example.com; //域名
4. ......
5.}
6. server {
7. listen 8000; //端口
8. server_name web1.example.com; //域名
9. .......
10.}
2.基于IP的虚拟主机(参考模板)
1.server {
2. listen 192.168.0.1:80; //IP地址与端口
3. server_name web1.example.com; //域名
4. ... ...
5.}
6. server {
7. listen 192.168.0.2:80; //IP地址与端口
8. server_name web1.example.com;
9.... ...
10.}