设为首页 收藏本站
查看: 2130|回复: 0

[经验分享] RHCE培训笔记——Apache

[复制链接]

尚未签到

发表于 2018-11-24 10:48:41 | 显示全部楼层 |阅读模式
  Linux下的Apache,软件包是httpd。Httpd的主配文件是/etc/httpd/conf/httpd.conf,其配置指令主要分三部分:控制整个Apache服务器行为的部分(即全局环境变量);定义主要或默认服务参数的指令;虚拟主机的设置参数。Httpd的相关资料多如牛毛,这里就不细说了,本文实验是结合dns和apache实现虚拟主机网站的发布。
  

  实验平台为Centos 6.2,环境为:
  DNS服务器暨Apache服务器
  主机名:itpro    IP地址:192.168.56.53
  客户端测试机
  主机名:station     IP地址:192.168.56.123
  

  准备工作:
  先安装DNS和Apache相应的软件,直接使用yum 安装即可,并设置开机启动
  [root@itpro ~]# yum install httpd bind bind-chroot
  [root@itpro ~]# chkconfig httpd on
  [root@itpro ~]# chkconfig named on
  [root@itpro ~]# service httpd start
  [root@itpro ~]# service named start
  

  

  一、先配置DNS服务器
  

  1.配置主配文件/etc/named.conf
  在options {}中,找出并修改以下三句内容:
listen-on port 53 { any; };#括号内容改为any
listen-on-v6 port 53 { any; };#改为any
allow-query     { any; };#改为any  

  2.配置区域配置文件,在末尾自定义区域(这里只定义正向解析,反向解析不定义)
  修改后内容如下:
  [root@itpro ~]# cat /etc/named.rfc1912.zones
……省略部分内容……
zone "sq.com" IN {
type master;
file "sq.com.zone";
allow-update { none; };
};
zone "op.com" IN {
type master;
file "op.com.zone";
allow-update { none; };
};  

  3.在/var/named下创建数据文件op.com.zone和sq.com.zone
  [root@itpro ~]# cd /var/named/
  [root@itpro ~]# cp -p named.localhost op.com.zone
  [root@itpro ~]# cp -p named.localhost sq.com.zone
  

  两文件的最终内容如下(其实是一样的):
  [root@itpro named]# cat op.com.zone
$TTL 1D
@       IN SOA  ns.sq.com. root (
0       ; serial
1D      ; refresh
1H      ; retry
1W      ; expire
3H )    ; minimum
NS      ns
ns      A       192.168.56.53
www     A       192.168.56.53  

  [root@itpro named]# cat sq.com.zone
$TTL 1D
@       IN SOA  ns.sq.com. root (
0       ; serial
1D      ; refresh
1H      ; retry
1W      ; expire
3H )    ; minimum
NS      ns
ns      A       192.168.56.53
www     A       192.168.56.53  

  [root@itpro named]# cd
  [root@itpro ~]#
  

  4.重启named服务
  [root@zoro ~]# service named restart
  Stopping named: .                                          [  OK  ]
  Starting named:                                            [  OK  ]
  

  

  二、Apache服务器配置
  

  1.首先创建测试需要用到的主面文件,如下:
  [root@luffy ~]# cd /var/www/html/
  [root@itpro html]# ls

  index.html  op  sq
  [root@itpro html]# cat index.html
  this is home page
  server: 192.168.56.53
  [root@itpro html]# cat op/index.html
  this is op page
  server: 192.168.56.53
  [root@itpro html]# cat sq/index.html
  this is sq page
  server: 192.168.56.53
  

  2.修改主配文件/etc/httpd/conf/httpd.conf
  首先启用NameVirtualHost字段,该字段为一个基于域名的虚拟主机指定一个IP地址,*表示本机当前使用的IP地址。
NameVirtualHost *:80  #这一行默认是注释掉了的,要将其前面的#去掉  

  然后在文件末尾增加以下内容:

#    ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /var/www/html  #文档的根目录。默认情况下,所有的请求从这个目录进行应答
ServerName 192.168.56.53  #机子的名称,用IP地址或域名表示
#    ErrorLog logs/dummy-host.example.com-error_log #可以指定错误日志存放目录,若不指定,默认是在/etc/httpd/logs/access_log里
#    CustomLog logs/dummy-host.example.com-access_log common


DocumentRoot /var/www/html/op
ServerName www.op.com


DocumentRoot /var/www/html/sq
ServerName www.sq.com
  

  3.重启httpd服务
  [root@itpro ~]# service httpd restart
  Stopping httpd:                                            [  OK  ]
  Starting httpd: httpd: apr_sockaddr_info_get() failed for zoro
  httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
  [  OK  ]
  

  三、客户机测试
  首先要将客户机的DNS指向DNS服务器192.168.56.53。
  

  1.测试域名解析是否正常
  [root@station ~]# nslookup www.op.com
  Server:         192.168.56.53
  Address:        192.168.56.53#53
  

  Name:   www.op.com
  Address: 192.168.56.53
  

  [root@station ~]# cat /etc/resolv.conf
  nameserver 192.168.56.53
  [root@station ~]# nslookup www.sq.com
  Server:         192.168.56.53
  Address:        192.168.56.53#53
  

  Name:   www.sq.com
  Address: 192.168.56.53
  

  以上结果无异常,表示DNS服务器正常运行。
  

  2.测试页面访问
  使用firefox访问http://192.168.56.53时,返回的结果为:
  this is home page server: 192.168.56.53
  

  使用firefox访问http://www.op.com时,返回的结果为:
  this is op page server: 192.168.56.53
  

  使用firefox访问http://www.sq.com时,返回的结果为:
  this is sq page server: 192.168.56.53
  

  

  四、进一步调试
  

  1. 在服务器上将httpd的主配文件/etc/httpd/conf/httpd.conf中的NameVirtualHost注释掉(先前启用了,现在重新注释掉),然后重启httpd,再查看测试结果。
  

  到客户机上访问站点,会发现,无论是http://192.168.56.53、http://www.op.com、还是http://www.sq.com,返回的结果都是“this is home page server: 192.168.56.53 ”,即http://192.168.56.53的主面内容。
  

  2.在上述操作1的基础上,再将“ServerName 192.168.56.53”的虚拟主机内容删除,即虚拟主机配置内容改为:
……省略部分内容……
#NameVirtualHost *:80
……省略部分内容……

DocumentRoot /var/www/html/op
ServerName www.op.com


DocumentRoot /var/www/html/sq
ServerName www.sq.com
  

  修改完成后,重启httpd。
  再在客户端使用浏览器访问,无论是http://192.168.56.53、http://www.op.com、还是http://www.sq.com,返回的结果都是“this is op page server: 192.168.56.53 ”,即http://www.op.com的主面内容。
  

  3.在上述操作2的基础上,再将NameVirtualHost启用,即将httpd的主配文件/etc/httpd/conf/httpd.conf中的NameVirtualHost前的注释符#去掉,修改完成后,重启httpd。
  

  再在客户端使用浏览器访问,访问http://192.168.56.53和http://www.op.com,返回的结果都是“this is op page server: 192.168.56.53 ”,访问http://www.sq.com返回的结果是“this is sq page server: 192.168.56.53 ”
  

  综合以上三次操作,可以得出结论:
  如果hpptd主配文件中,#NameVirtualHost *:80 被注释掉了(默认是被注释掉了的),则表示httpd的虚拟功能没有打开,此时无论在主配文件中写多少个虚拟主机(相应地,要在指定的DocumentRoot目录上建立站点页面,首页必须是index.html),最终只是第一个(写在最上面的)生效,即客户机访问所在的ServerName,最终都指向第一个ServerName对应的页面。
  

  结论二,在启用了虚拟功能之后,主站(本文是http://192.168.56.53,对应/var/www/html/index.html),也要写入到虚拟主机里面,否则不会被访问。如操作3中,访问http://192.168.56.53时,实际上访问的不是主站,而是第一个虚拟主机http://www.op.com的页面。
  

  

  五、访问控制
  

  以上述配置文件的最后一个虚拟主机www.sq.com为例。
  在虚拟主机里使用容器来设置访问控制。
  

  1. 将虚拟主机配置修改为以下内容:

DocumentRoot /var/www/html/sq
ServerName www.sq.com

order allow,deny  #先允许,后拒绝
allow from 192.168.56.  #允许的内容,这里允许192.168.56.0网段来访
deny from 192.168.56.123  #拒绝的内容,这里拒绝主机192.168.56.123来访

  

  重启httpd。
  此时,IP地址为192.168.56.123的主机无法访问www.sq.com主页,出现的是Apache测试页面,在/etc/httpd/logs/access_log日志中,可以看到403报错,如下:
  192.168.56.123 - - [14/May/2013:07:13:55 +0800] "GET / HTTP/1.1" 403 5039 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.24) Gecko/20111104 Red Hat/3.6.24-3.el6_1 Firefox/3.6.24"
  

  除192.168.56.123外,192.168.56.0网段内的其他主机,都可以正常访问www.sq.com主页。
  

  2. 将虚拟主机配置修改为以下内容(与操作1相比,访问控制顺序颠倒一下):

DocumentRoot /var/www/html/sq
ServerName www.sq.com

order deny,allow  #先拒绝,后允许
allow from 192.168.56.
deny from 192.168.56.123

  

  重启httpd。
  此时,192.168.56.0网段内的所有主机,包括192.168.56.123,都可以正常访问www.sq.com主页。
  

  3. 将虚拟主机配置修改为以下内容(与操作2相比,允许和拒绝的内容互换了一下):

DocumentRoot /var/www/html/sq
ServerName www.sq.com

order deny,allow  #先拒绝,后允许
allow from 192.168.56.123
deny from 192.168.56.

  

  重启httpd。
  此时,IP地址为192.168.56.123的主机可以访问www.sq.com主页,除192.168.56.123外,192.168.56.0网段内的其他主机,不可以访问www.sq.com主页。
  

  4. 将虚拟主机配置修改为以下内容(与操作3相比,访问控制顺序颠倒了;与2相比,访问控制顺序颠倒了,允许和拒绝的内容也互换了;与1相比,允许和拒绝的内容互换了):

DocumentRoot /var/www/html/sq
ServerName www.sq.com

order allow,deny  #先允许,后拒绝
allow from 192.168.56.123
deny from 192.168.56.

  

  此时,192.168.56.0网段内的所有主机,包括192.168.56.123,都不可以访问www.sq.com主页。
  

  综合以上四次操作,说明了什么问题呢?头晕了,说不清楚。两两组合的问题,在实际工作中,大概不会这样写的吧,就本次实验同一网段内的需求而言,只使用deny语句、不使用allow语句,会更方便地实现访问控制。
  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-638957-1-1.html 上篇帖子: Apache的虚拟主机配置及其信号处理方法 下篇帖子: Linux系统 LAMP安装结束后APACHE的配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表