http的路径别名、虚拟主机、用户认证

简介:
1、 httpd 路径别名
  Alias
 其存在在/etc/httpd/conf/目录中httpd.conf文件中,
 

 

 其定义的语法格式为 Alias /URL "local_path"
 大概意思就是用一个简单的路径来映射长路径:
 如图中,  /icons/映射的路径为  “/var/www/icons/”
    例子:
 
 
  1. [root@Cyz ~]# mkdir -pv /bbs/forum          //创建路径  
  2. mkdir: created directory `/bbs'  
  3. mkdir: created directory `/bbs/forum'  
  4. [root@Cyz ~]# cd /bbs/forum/  
  5. [root@Cyz forum]# vim index.html            //为其创建主页并在其中添加信息,大致为  
  6.                                          //Lujing Bieming –观察而已  
  7. [root@Cyz forum]# vim /etc/httpd/conf/httpd.conf //编辑里面,  
  8. //加上路径别名Alias /luntan "/bbs/forum"  
  9. //需要注意,/luntan后是否有斜线需与  
  10. // “//bbs/forum”对应,存在应同时存在  
  11. [root@Cyz forum]# service httpd restart        //重启网络服务  
  12. Stopping httpd:                                            [ OK ]  
  13. Starting httpd:                                            [ OK ]  
  14. [root@Cyz forum]#  
 
 然后打开浏览器输入  172.16.111.1/luntan查看内容,
 

 
2 、虚拟主机
 首先,我们来为虚拟主机分下类:
              虚拟主机:
                     基于IP的虚拟主机;
                     基于端口的虚拟主机;
                     基于域名的虚拟主机;
      虚拟主机的定义格式如下:
 
 
  1. <VirtualHost HOST> 
  2.  
  3. </VirtualHost> 
  ①前提:得先取消中心主机,注释中心主机的 DocumentRoot即可。因为虚拟主机和中心主机不能同时使用。/ etc/httpd/conf/httpd.comf
 

  ②创建虚拟主机
   有2中方法:在 /etc/httpd/ conf/httpd.comf中定义 VirtualHost,或者在 conf.d目录下创建,这里选取在 conf.d中创建
 
 
  1. [root@Cyz conf.d]# vim virtual.conf  
  2.    
  3. // 首先我们来创建基于不同IP的虚拟主机  
  4. <VirtualHost 172.16.111.1:80>    //:80是指web的默认端口80  
  5.         ServerName hell.magedu.com  
  6.         DocumentRoot "/www/magedu.com"  
  7. </VirtualHost> 
  8.    
  9. <VirtualHost 172.16.111.2:80> 
  10.         ServerName www.a.org  
  11.         DocumentRoot "/www/a.org"  
  12. </VirtualHost> 
  13. :wq   //保存退出  
 
然后由于我们的文件目录还没创建,这里我们去创建这些目录文件
 
 
  1. [root@Cyz ~]# mkdir -pv /www/{magedu.com,a.org}  
  2. mkdir: created directory `/www'  
  3. mkdir: created directory `/www/magedu.com'  
  4. mkdir: created directory `/www/a.org'  
  5.    //创建目录完成,下一步创建index.html文件  
  6. [root@Cyz ~]# cd /www/magedu.com/  
  7. [root@Cyz magedu.com]# vim index.html  
  8.  //index.html文件中可随意添加,起到注释作用即可。  
  9. [root@Cyz magedu.com]# cd /www/a.org/  
  10. [root@Cyz a.org]# vim index.html //同上  
  11.    
  12. [root@Cyz a.org]# service httpd restart    //重启网络服务  
  13. Stopping httpd:                                            [ OK ]  
  14. Starting httpd:                                            [ OK ]  
  15.    
  16. //这个时候。我们还没有为172.16.111.2添加别名,所以:  
  17. [root@Cyz a.org]# ip addr add 172.16.111.2/16 dev eth0 //添加别名  
  18. [root@Cyz a.org]# ip addr show                 //查看别名  
  19. 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue   
  20.     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00  
  21.     inet 127.0.0.1/8 scope host lo  
  22. 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000  
  23.     link/ether 00:0c:29:15:c3:cf brd ff:ff:ff:ff:ff:ff  
  24.     inet 172.16.111.1/16 brd 172.16.255.255 scope global eth0  
  25.     inet 172.16.111.2/16 scope global secondary eth0     //这里说明已经添加完成  
 
这里,我们已经做好了基于IP的虚拟主机,这个时候我们打开ie浏览器来查看
 

 

 

然后,我们来创建 基于不同端口的虚拟主机:
我们这里继续编辑
 
 
  1. [root@Cyz conf.d]# vim virtual.conf  
  2. //在其中加入  
  3. <VirtualHost 172.16.111.1:8080> 
  4.         ServerName www.b.net  
  5.         DocumentRoot "/www/b.net"  
  6. </VirtualHost> 
  7. :wq  
  8. //继续去创建一个b.net目录并创建index.html(方法同上)  
  9. [root@Cyz www]# mkdir b.net  
  10. [root@Cyz www]# cd b.net  
  11. [root@Cyz b.net]# vim index.html //内容起到标示作用即可  
  12. //然后到conf/httpd.conf中启用监听端口8080  
  13. [root@Cyz b.net]# vim /etc/httpd/conf/httpd.conf  
  14. //找到Listen 80在其下添加  
  15. Listen 8080  
  16.    
  17. [root@Cyz b.net]# service httpd restart    //重启网络服务  
 
然后我们继续访问
 

 

然后,我们来创建 基于不同域名的虚拟主机:
首先我们要启用 NameVirtualHost并制定在哪个地址上,监听哪个端口
 
 
  1. //这里同样可以在httpd.conf中定义,也可以在我们在conf.d目录中创建的文件中定义,这里我们依然在conf.d目录中的文件中定义  
  2. [root@Cyz ~]# vim /etc/httpd/conf.d/virtual.conf  
  3. //在头部添加  
  4. NameVirtualHost 172.16.111.2:80 //这里表明在111.2:80上实现不同域名的虚拟主机  
  5. //然后我们继续在下面添加  
  6. <VirtualHost 172.16.111.2:80> 
  7.         ServerName www.d.gov  
  8.         DocumentRoot "/www/d.gov"  
  9. </VirtualHost> 
  10. :wq  
  11. //继续创建目录与文件  
  12. [root@Cyz www]# mkdir d.gov  
  13. [root@Cyz www]# cd d.gov  
  14. [root@Cyz d.gov]# vim index.html //内容起到标示作用即可  
  15.    
  16. [root@Cyz b.net]# service httpd restart    //重启网络服务  
  17. //这里需要注意的是:如果访问,需要能够解析两个主机名,最简单的方式就是编辑物理机的hosts文件,或者创建一个DNS服务器把那2个主机名解析到自己的主机下。这里我们用简单的方法编辑本机的hosts文件:  
  18. //在hosts文件中加入  
  19.     172.16.111.2   www.a.org  
  20.     172.16.111.2   www.d.gov  
 hosts文件路径:
 

然后我们进行测试访问
 

 

到这里,我们已经完成了对虚拟主机的创建。
  ③为不同的站点添加各自的日志
如果我们没有在 conf.d下的 virtual.conf中定义日志的存放位子。那么它就全部存在放了 /var/log/httpd中,如果想更好的管理,将日志予以分类,我们便可以在 virtual.conf中定义:
 
 
  1. NameVirtualHost 172.16.111.2:80  
  2. <VirtualHost 172.16.111.1:80> 
  3.         ServerName hell.magedu.com  
  4.         DocumentRoot "/www/magedu.com"  
  5.         CustomLog /var/log/httpd/magedu.com/access_log combined //添加内容  
  6. //combined表示格式,前边表示访问时的存放路径  
  7. </VirtualHost> 
  8.    
  9. <VirtualHost 172.16.111.2:80> 
  10.         ServerName www.a.org  
  11.         DocumentRoot "/www/a.org"  
  12.         CustomLog /var/log/httpd/a.org/access_log combined //添加内容  
  13. </VirtualHost> 
  14.    
  15. <VirtualHost 172.16.111.2:80> 
  16.         ServerName www.d.gov  
  17.         DocumentRoot "/www/d.gov"  
  18.         CustomLog /var/log/httpd/d.gov/access_log combined //添加内容  
  19.    
  20. </VirtualHost> 
  21.    
  22. <VirtualHost 172.16.111.1:8080> 
  23.         ServerName www.b.net  
  24.         DocumentRoot "/www/b.net"  
  25.         CustomLog /var/log/httpd/b.net/access_log combined //添加内容  
  26. </VirtualHost> 
  27. :wq  
  28.    
  29. //然后到var/log目录中创建这些目录  
  30. [root@Cyz ~]# cd /var/log/httpd/  
  31. [root@httpd ]# mkdir a.org b.net d.gov magedu.com  
  32. [root@Cyz httpd]# service httpd restart    //重启网络服务  
  33. 然后在浏览器分别对这些网站进行访问  
  34. [root@Cyz httpd]# tree //查看日志是否生成  
  35. .  
  36. |-- a.org  
  37. |   `-- access_log  
  38. |-- access_log  
  39. |-- access_log.1  
  40. |-- b.net  
  41. |   `-- access_log  
  42. |-- d.gov  
  43. |   `-- access_log  
  44. |-- error_log  
  45. |-- error_log.1  
  46. `-- magedu.com  
  47.     `-- access_log  
  48.    
  49. 4 directories, 8 files  
  50.    
  51. //可以tail命令查看日志内容  
 
3 、用户认证
如上实验。如果我们希望用户访问 a.org的时候,要通过用户登录才能够访问
 
 
 
  1. [root@Cyz httpd]# vim /etc/httpd/conf.d/virtual.conf  
  2. //编辑文件,在2:80中添加  
  3. <VirtualHost 172.16.111.2:80> 
  4.         ServerName www.a.org  
  5.         DocumentRoot "/www/a.org"  
  6.         CustomLog /var/log/httpd/a.org/access_log combined  
  7.         <Directory "/www/a.org"> ///  
  8.         Options none  
  9.         AllowOverride authconfig  
  10.         AuthType basic           
  11.         AuthName "Restrict area."      
  12.         AuthUserFile "/etc/httpd/.htpasswd"  
  13.         Require valid-user     //所有用户  
  14.         </Directory> 
  15. </VirtualHost> 
  16. :wq  
  17. //然后创建用户  
  18. [root@Cyz ~]# htpasswd -c -m /etc/httpd/.htpasswd tom  
  19. // -c表示指定路径,第一次创建的时候需要指出第二次不必,加上会覆盖原先的  
  20. New password:  //不显示的输入  
  21. Re-type new password:   
  22. Adding password for user tom //创建成功  
  23.    
  24. [root@Cyz ~]# httpd –t //检查语法错误  
  25. Syntax OK  
  26.    
  27. [root@Cyz ~]# service httpd restart    //重启网络服务  
 
然后来进行测试访问
 

输入用户名即可访问








本文转自 陈延宗 51CTO博客,原文链接:http://blog.51cto.com/407711169/1175692,如需转载请自行联系原作者
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
缓存 JavaScript
Node.js——path路径,http,npm与包,模块化
Node.js知识点 一、fs(文件系统) 二、path(路径) 三、http(服务器) 四、npm与包 五、模块化 一、fs(文件系统) (1) 读取指定文件内容 fs.readFile(path[,option],callback 参数1:字符串,表示文件的路径 参数2,表示以什么编码格式读取文件 参数3:读取完成后,通过会点函数读取结果 (2) 向指定的文件中写入内容 fs.writeFile(file,data[,options],callback) 参数1:指文件路径的字符串,表示文件的存放路径 参数2:表示要写入的内容 参数3:表示写入内容的格式,默认值是utf8
113 0
Node.js——path路径,http,npm与包,模块化
|
前端开发 应用服务中间件 nginx
nginx部署之https访问按照不同路径访问不同项目
上一篇介绍过如何在一个nginx上使用同一个端口部署多个web项目进行访问.具体内容可以参考:nginx支持一个端口访问多个前端项目(http以及https).
|
PHP
解决阿里云虚拟主机上WordPress配置支持Https
解决阿里云虚拟主机上WordPress配置支持Https
141 0
解决阿里云虚拟主机上WordPress配置支持Https
|
开发者 Python
WSGI 不同路径返回不同内容 & amp;HTTP 状态码 | 学习笔记
快速学习 WSGI 不同路径返回不同内容 & amp;HTTP 状态码
80 0
WSGI 不同路径返回不同内容 & amp;HTTP 状态码 | 学习笔记
|
域名解析 安全 网络安全
虚拟主机网站也可以有HTTPS
我国有三百多万个中小企业网站处于“不安全”状态,浏览器访问都显示为“不安全”,这些网站基本上都是虚拟主机网站,都是由于无法部署SSL证书而导致,怎么办?零信技术给出了最佳答案!
180 1
虚拟主机网站也可以有HTTPS
ADI
|
存储 缓存 网络协议
[记录]我的HTTP学习路径
[记录]我的HTTP学习路径
ADI
283 0
|
Web App开发 网络安全 Apache
Apache 单IP配置多个HTTPS虚拟主机
Apache 文档中提到,不能在单个 IP上同时有多个按名字识别的虚拟主机("named virtual host"),其实不完全是这样了。 使用SNI SNI全称Server Name Indication(服务器名称指示),这个问题可以解决apache中的单IP多HTTPS虚拟主机,只有默认第一个站点的SSL生效的问题。但是这些技术需要浏览器的版本支持
589 0
|
应用服务中间件 网络安全 Windows
Confluence 6 通过 SSL 或 HTTPS 运行 - 确定你的证书路径
在默认的情况下,Tomcat 希望 keystore 文件被命名为 .keystore 文件,同时这个文件应该放置在 Tomcat 运行的 home 目录中(这个目录可能与你自己的 Home 目录的路径不同)。
1374 0