nginx_基于域名的虚拟主机
基于域名的虚拟主机
配置基于域名的虚拟主机,实现:
实现两个基于域名的虚拟主机,域名分别为www.a.com和www.b.com
对域名为www.a.com的站点进行用户认证,用户名称为tom,密码为123456
方案
修改Nginx配置文件,添加server容器实现虚拟主机功能;对于需要进行用户认证的虚拟主机添加auth认证语句。
虚拟主机可分为3类:基于域名/IP/端口的虚拟主机。
步骤
步骤一:修改配置文件
1)修改Nginx服务配置,添加相关虚拟主机配置如下
开始行,结束行s是替换/旧/新/
85,94s/#// #把85行到94行的注释删掉
85,94s/^/#/ #给85行到94行加注释
# 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)创建网站根目录及对应首页文件
# mkdir /usr/local/nginx/www
# echo "www.b.com" > /usr/local/nginx/www/index.html
3)重启nginx服务。
# nginx -s reload
--------------------------------------------------------------------
步骤二:客户端client测试
1)修改客户端的/etc/hosts文件,进行域名解析
# vim /etc/hosts
192.168.4.5 www.a.com www.b.com
2)客户端client测试
注意:先关闭真实机的firefox,再ssh -X远程连接调用虚拟机的firefox。
# firefox http://www.a.com #输入密码后可以访问
# firefox http://www.b.com #直接访问
提示:或者直接使用真实主机做客户端主机验证,修改真实主机的/etc/hosts文件,直接使用真实主机的火狐浏览器访问也可以。
如果你配了几个虚拟主机,当你火狐访问输入了IP而不是域名 ,它会从上往下读,谁是第一个server,它就出来哪个页面。