基于域名的虚拟主机
配置基于域名的虚拟主机, 实现:
实现两个基于域名的虚拟主机, 域名分别为 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, 它就出来哪个页面.
来源: http://www.bubuko.com/infodetail-3040131.html