华风 发表于 2018-11-26 11:07:52

RHCE心得11——Apache服务心得

环境:RHEL5.3,DNS已经配置好为:www.station53.com
    对Apache全面做了说明,简单的web服务器的实现,虚拟主机的实现,个人主页的时间,主页加密验证的实现,都有详细介绍。
一、Apache服务总览:
1、所需要的软件包:httpd   httpd-devel   httpd-manual
2、端口:80(http)443(https)
3、主配置文件:/etc/httpd/*
4、默认主页目录:/var/www/html
5、与Apache服务相关的Selinux环境:
1)system_u:object-r:httpd_config_t
/etc/httpd/conf和/etc/httpd/conf.d 下的文件
2)system_u:object_r:httpd_log_t
/etc/httpd/logs中的日志文件。
3)system_u:object_r:httpd_modules_t
httpd服务使用的相关模块
4)网页内容及网页目录的环境:
System_u:object_r:httpd_sys_content_t:如果不是这个页面将无法访问。
另:对于目录,Other组要有访问和可执行权限。
设置Selinux环境:
Chcon -R —reference=/var/www/html   /var/www/html/data
Restorecon -R /var/www/html
建议网站目录都放到/var/www/html防止因为Selinux造成问题。
二、Apache配置文件的简单实现:
1、 相关配置文件修改:/etc/httpd/conf/httpd.conf
1)、ServerRoot”/etc/httpd” 默认配置文件的存放目录;
2)、Timeout 120 客户端访问超时时间120秒;
3)、Listen 80监听80端口;
4)、ServerAdmin root@rhel.com设置管理员邮箱;
5)、ServerName www.station53.com服务器主机名,可以使DNS域名,也可以是IP地址;
6)、DocumentRoot /var/www/html网页默认存放目录;
7)、DirectoryIndex index.htmlindex.htm设置主页文件的名字;
2、建立主页文件:
在/var/www/html目录建立主页文件index.html并写上写内容。
3、启动相关服务:
chkconfig httpd on
service httpd restart
4、测试自己的服务器:
三、用户个人主页的实现:
通过配置使我们每个用户都有一个主页可以通过http://www.station53.com/~Username访问的主页。
主配置文件的修改:
-----------------------------------------------------

    #
    # UserDir is disabled by default since it can confirm the presence
    # of a username on the system (depending on home directory
    # permissions).
    #UserDir disable //默认是开启的,禁用掉就可以实现个人网站了。
    # To enable requests to /~user/ to serve the user's public_html
    # directory, remove the "UserDir disable" line above, and uncomment
    # the following line instead:
    #
    UserDir public_html //个人网站存放目录/home/Username/public_html


    AllowOverride FileInfo AuthConfig Limit
    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
   
      Order allow,deny//allow,deny规则,先判断allow,后判断deny,冲突时,后面的有效;
      Allow from all //没有任何限制
#   Deny from 192.168.1 //上下冲突,这个时候deny起作用,除了192.168.1网段的外其他的都可以访问你
   
#   
#      Order deny,allow
#      Deny from all
#   

----------------------------------------------------------------------
备注:
1) 目录权限设置:
----------------------------------------------------------------------

    AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
Order allow,deny
Allow from all

-------------------------------------------------------------------
AllowOverride:用于定义位于每个目录下的.htaccess(访问控制)文件中的指令类型。如果要禁用的话:AllowOverride None。
Options MultiViews:定义目录使用那些特性。
Indexes:允许目录浏览,但没有指定访问目录下的那个文件,而其目录下不存在默认文档时Apache以超文本形式返回目录中的文件和子目录列表。
MulitiViews:允许内容协商的多重试图。当访问http://127.0.0.1/icons/a时,服务会查找目录下的所有a.*的文件,如果目录下有就会显示这个文件,而不是报错信息。
All:包含了除MulitiViews之外的所有特性,如果没有Options语句默认为All。
ExecCGI:允许执行CGI脚本。
FollowSymLinks:在该目录中可以使用符号链接。
Includes:允许服务端包含功能。
IncludesNoExec:允许服务端包含功能但不允许执行CGI脚本。
2)缺省访问权限和allow、deny顺序:
allow,deny规则,先判断allow,后判断deny,冲突时,后面的有效;
例子如下:
---------------------------------------------------------------------
Order deny,allow
allow from all
deny from 192.168.0.250
#全部都可以通行

Order allow,deny
deny from hacker.com
deny from 192.168.0.250
#只hecker.com和192.168.0.250不能访问

Order deny,allow
allow from 192.168.0/24
#允许所有主机访问

Order allow,deny
allow from 192.168.0/24
#只有192.168.0/24网段可以访问
-------------------------------------------------------
2)个人网站主目录的设置及文件的建立:
在个人目录/home/username目录下创建public_html目录。
建立自己的主页,然后在浏览器输入“http://URL/~username”即可,
备注:注意public_html目录和里面的文件的Selinux环境参数,如果有问题请按照上面讲的调整。
四、虚拟主机的设置:
(默认已经设计好www.station53.com下面我们在开通www.server53.com 和www.client53.com
1、配置DNS:
1)编辑/var/namde/chroot/etc/named.conf,编辑好文件如下:
----------------------------------------------------------------------------------
……前面省略
zone "server53.com" IN {
      type master;
      file "server53.com.zone";
};
zone "client53.com" IN {
      type master;
      file "client53.com.zone";
后面省略…… //红色为新加内容,分别用于解释server53.com和client53.com两个域名。
------------------------------------------------------------------------------------
2)在/var/named/chroot/var/named生成:server53.com.zone和client53.com.zone两个文件:
------------------------------------------------------------------------------------
# cp station53.com.zone server53.com.zone
# cp station53.com.zone client53.com.zone
----------------------------------------------------------------------------------
3)修改权限及文件内容:
-----------------------------------------------------------------------------
# chgrp named server53.com.zone
# chgrp named client53.com.zone
# vim client53.com.zone
$TTL    86400
@               IN SOAns.client53.com.       root (
                                        42            ; serial (d. adams)
                                        3H            ; refresh
                                        15M             ; retry
                                        1W            ; expiry
                                        1D )            ; minimum
                IN NS         ns.client53.com.
                IN NS         www.client53.com.
                IN MX   5       mail.client53.com.
ns            IN A            192.168.0.253
www         IN A            192.168.0.253
mail            IN A            192.168.0.253
//我做的解析比较多大家可以只做个www就可以。
------------------------------------------------------------------------------------
4)在/var/named目录下建立server53.com.zone、client53.com.zone的连接文件,并调整好权限:
------------------------------------------------------------------------------------
# ln -s chroot/var/named/server53.com.zone .
# ln -s chroot/var/named/client53.com.zone .
# chgrp named server53.com.zone
# chgrp named client53.com.zone
--------------------------------------------------------------------------------------
5)重新启动DNS服务并测试新建立的域名。
2、编辑/etc/httpd/conf/httpd.conf文件:
-----------------------------------------------------------------------
NameVirtualHost *:80

#    ServerAdmin webmaster@dummy-host.example.com
   DocumentRoot /var/www/html/server53
    ServerName www.server53.com
#    ErrorLog logs/dummy-host.example.com-error_log
#    CustomLog logs/dummy-host.example.com-access_log common


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

----------------------------------------------------------------------------
3、重新启动Apache服务,测试设置是否满足要求:
1)在/var/www/html目录下分别建立server53 和 client53两个目录,并添加主页文件,处理其相关的Selinux环境设置。
2)重新启动Apache服务测试:
??什么www.station53.com 和www.server53.com显示的一样?
所以我们要继续修改/etc/httpd/conf/httpd.conf,添加如下段内容:
---------------------------------------------------------------------------------------

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

---------------------------------------------------------------------------------------
在/var/www/html目录下建立station53目录,并建立主页文件处理selinux环境。
一旦打开虚拟主机功能,那么每个域名都要在虚拟主机项目相应的位置添加与之对应的项目,否则默认访问第一个虚拟主机的设置。
通过了?OK!!!
五、主页的用户认证的设置:(以redhat的个人目录为例!)
1、配置httpd.conf文件,使目标目录支持认证:
目标目录在httpd.conf中要有AllowOverride AuthConfig 项,默认开启用户个人主页后,用户个人目录支持这个设置。
---------------------------------------------------------------------------
//用户家目录,也可以针对某个目录单独做个……说明项目。
    AllowOverride FileInfo AuthConfig Limit//默认就有这个支持。
    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
   
      Order allow,deny
      Allow from all
   
#   
#      Order deny,allow
#      Deny from all
#   

-------------------------------------------------------------------------
2、建立.htaccess文件,建立在站点目录下,这里就是/home/redhat/public_html目录下。
-------------------------------------------------------------
# vim /home/redhat/public_html/.htaccess
AuthType Basic               //密码测试方式;
AuthName "密码测试"   //弹出的密码检测框里的内容;
AuthUserFile /home/redhat/public_html/.passwords//密码文件的存放位置;
Require user redhat   //可以允许密码文件中的所有用户使用正确的密码进行访问。
-----------------------------------------------------------------
3、建立.passwords文件:
--------------------------------------------------------------
# htpasswd -c /home/redhat/public_html/.passwords redhat
New password:
Re-type new password:
Updating password for user redhat
--------------------------------------------------------------
4、测试效果:
肯定OK,注意不要写错,我在配置.htaccess的时候密码文件放置位置的名字写错了,一直在验证密码,怎么都跳不过去,呵呵。注意这两个文件都是隐藏文件名字前面带点。
如果DNS部分配置有问题,请查看Blog中关于DNS部分的心得。




页: [1]
查看完整版本: RHCE心得11——Apache服务心得