Apache服务器的搭建(2)

想要实现个人站点的发布必须修改httpd的主配置文件/etc/httpd/conf/httpd.conf 

<IfModule mod_userdir.c>

 # UserDir disable      把“禁用主目录项” 禁用了

  UserDir public_html      指定个人站点的主目录在自己家目录下

 </IfModule>

在linux下用user1登录

[user1@ttttttttt ~]$mkdir public_html    在家目录下创建自己的主站点

[user1@ttttttttt ~]$ vim public_html/index.html  在主站点中创建自己的主页

user1 !!!!!!!

更改user1的家目录的权限

[root@ttttttttt home]# chmod a+r user1    改为可读

然后重启httpd

用客户端访问时:

Apache服务器的搭建

但是每次访问时都加一个“~”,对于用户来说太麻烦了,下面我们试着把“~ ”去掉

编译/etc/httpd/conf/httpd.conf   在该文件中添加下列语句

alias /user1  "/home/user1/public_html"     指定user1的站点主目录

然后重启httpd,再用客户端访问

Apache服务器的搭建

但是这样使得每个人都能访问,我们要实现身份验证:

用user1在其站点的主目录下创建并编译.htaccess文件,实现访问的验证

authuserfile     /home/user1/.htpasswd

authtype   basic

authname  "please input your name"

require valid-user

[user1@ttttttttt ~]$ htpasswd  -c .htpasswd ll   创建一个站点访问账户

New password: 

Re-type new password: 

Adding password for user ll

设置目录安全性:

编译:/etc/httpd/conf/httpd.conf并添加下列内容:

<Directory /home/*/public_html>    对所有站点目录实行验证

 AllowOverride all

</Directory>

重启httpd

再使用客户端访问:

Apache服务器的搭建

站点的设置:

http主配置文档(/etc/httpd/conf/httpd.conf)的分析

DirectoryIndex index.html index.html.var      显示站点目录中的文件

AccessFileName .htaccess   实现身份验证的文件按

<Files ~ "^\.ht">             

Order allow,deny    

Deny from all

</Files>

TypesConfig /etc/mime.types   多用途邮件扩展,定义相应的程序来出来客户端请求

HostnameLookups Off     记录访问apache的所有客户端

 我们访问时的日志记录在/var/log/httpd/

root@ttttttttt httpd]# ll

-rw-r--r-- 1 root root  613 09-05 02:33 access_log  访问成功日志

-rw-r--r-- 1 root root 3739 09-05 05:14 error_log    访问失败日志

-rw-r--r-- 1 root root  982 09-05 05:15 ssl_access_log     加密访问成功日志

-rw-r--r-- 1 root root 2282 09-05 05:14 ssl_error_log       加密访问失败日志

-rw-r--r-- 1 root root 1059 09-05 05:15 ssl_request_log     加密访问请求日志

 

 

 

 

虚拟主机的制作

一、基于物理目录虚拟主机:(目录位必须于站点的主目录,目录名称固定)

[root@ttttttttt ~]# cd /var/www/html   切换到主目录下

[root@ttttttttt html]# mkdir  qq       创建该目录

[root@ttttttttt html]# vim qq/index.html     为该虚拟主机创建主页

hello------qq!!!!!!!!

客户端访问:

Apache服务器的搭建

访问时还得加上目录,且目录固定,不是太灵活

二、基于虚拟目录虚拟主机:(目录为与任意位置,名称也可以任意取)

[root@ttttttttt html]# mkdir /ll     我们随意找个位置创建目录

[root@ttttttttt html]# cd /ll   

[root@ttttttttt ll]# vim index.html   在该目录下创建主页

126!!!!!!!!!!!!!!!!!!! 

进入httpd主配置文档

[root@ttttttttt ll]# vim /etc/httpd/conf/httpd.conf 

alias /126  "/ll/"        为该网络指定访问目录

重启httpd服务

在客户端运行时

利用虚拟目录实现www服务器的站点的下载

编译/etc/httpd/conf/httpd.conf

alias /download  "/ll/"

<Directory "/ll">      目录浏览特性  指定对应目录

    Options Indexes MultiViews

    AllowOverride None

    Order allow,deny

    Allow from all

</Directory>

[root@ttttttttt ll]# mv index.html index.html.old   去掉网页

[root@ttttttttt ll]# touch f1  创建几个文件和目录

[root@ttttttttt ll]# mkdir rr

[root@ttttttttt ll]# touch f2

重启httpd

在客户端:点击文件另存便可以实现下载

Apache服务器的搭建

如果客户端显示乱码,可以在/etc/httpd/conf/httpd.conf中把

AddDefaultCharset UTF-8禁用掉

三、基于Ip地址的虚拟主机(资源的浪费)

多个ip地址             多个fqdn(域名)   端口80        多个站点

192.168.20.88                                /var/www/html

192.168.20.80            tec.abc.com                      /var/www/tec

192.168.20.70            mkt.abc.com                     /var/www/mkt

使用yum安装bind-9.3.6-4.P1.el5_4.2.i386.rpm ,bind-chroot-9.3.6-4.P1.el5_4.2.i386.rpm 俩包 

yum install bind bind-chroot -y

在安装一个caching-nameserver-9.3.6-4.P1.el5_4.2.i386.rpm包

yum install caching-nameserver -y

(1)配置dns服务器:

1.产生dns的主配置文件在/var/named/chroot/etc/下

[root@ttttttttt etc]# cp -p named.caching-nameserver.conf   named.conf

进入编译:named.conf将四处该为any

options {

        listen-on port 53 { any; };

 allow-query     { any; };

};

view localhost_resolver {

        match-clients      { any; };

        match-destinations { any; };

};

2.生成区域声明:

在/var/named/chroot/etc/目录下编译named.rfc1912.zones,在其中添加

zone "abc.com" IN {

        type master;

        file "abc.com.db";

        allow-update { none; };

};

3.生成数据库文件,并添加记录

切换到/var/named/chroot/var/named/目录下

[root@ttttttttt named]# cp -p localhost.zone  abc.com.db   产生数据库文件并编译

$TTL    86400

@               IN SOA  ns.abc.com.       root (

                                        42              ; serial (d. adams)

                                        3H              ; refresh

                                        15M             ; retry

                                        1W              ; expiry

                                        1D )            ; minimum

                IN NS           ns.abc.com.

ns              IN A            192.168.20.88

www             IN A            192.168.20.88

tec             IN A            192.168.20.80

mkt             IN A            192.168.20.70

4.分别检查主配置文件与数据库文件是否有错误

[root@ttttttttt named]# named-checkconf /var/named/chroot/etc/named.conf 

[root@ttttttttt named]# named-checkzone abc.com /var/named/chroot/var/named/abc.com.db 

zone abc.com/IN: loaded serial 42

OK

5.为各个站点创建目录,并设置主页

[root@ttttttttt named]# cd /var/www/

[root@ttttttttt www]# mkdir mkt

[root@ttttttttt www]# mkdir tec

[root@ttttttttt www]# vim mkt/index.html

mkt!!!!!!!

[root@ttttttttt www]# vim tec/index.html

tec!!!!!!!!

6.在httpd主配置文档中/etc/httpd/conf/httpd.conf添加站点的属性

<VirtualHost 192.168.20.88:80>

    ServerAdmin testlt@126.com      管理员邮箱

    DocumentRoot /var/www/html      站点的主目录

    ServerName          站点的名称

    ErrorLog logs/www-error_log     出错日志

    CustomLog logs/www-access_log common    成功日志

</VirtualHost>

<VirtualHost 192.168.20.80:80>

    ServerAdmin testlt@126.com

    DocumentRoot /var/www/tec

    ServerName tec.abc.com

    ErrorLog logs/tec-error_log

    CustomLog logs/tec-access_log common

</VirtualHost>

<VirtualHost 192.168.20.70:80>

    ServerAdmin testlt@126.com

    DocumentRoot /var/www/mkt

    ServerName mkt.abc.com

    ErrorLog logs/mkt-error_log

    CustomLog logs/mkt-access_log common

</VirtualHost>

7.启动dns服务,重启httpd,经客户端的dns设为该dns服务器进行测试

 

Apache服务器的搭建

Apache服务器的搭建

四、基于端口的虚拟主机 (端口不易被用户记住)

少量的ip           少量的fqdn           多个端口           多个站点

192.168.20.88                   80              /var/www/html

800          /var/www/tec

8000         /var/www/mkt

(1)开启多个端口监听:编译/etc/httpd/conf/httpd.conf   添加

Listen 80

Listen 800

Listen 8000

此时使用Getenforce 命令查看sclinux状态     

若是被启用了则使用setenforce  0 关闭sclinux   否则会影响虚拟端口的开启

(2)配置站点属性,继续编译/etc/httpd/conf/httpd.conf   添加

<VirtualHost 192.168.20.88:80>

    ServerAdmin testlt@126.com

    DocumentRoot /var/www/html

    ServerName 

    ErrorLog logs/www-error_log

    CustomLog logs/www-access_log common

</VirtualHost>

<VirtualHost 192.168.20.88:800>

    ServerAdmin testlt@126.com

    DocumentRoot /var/www/tec

    ServerName 

    ErrorLog logs/tec-error_log

    CustomLog logs/tec-access_log common

</VirtualHost>

<VirtualHost 192.168.20.88:8000>

    ServerAdmin testlt@126.com

    DocumentRoot /var/www/mkt

    ServerName 

    ErrorLog logs/mkt-error_log

    CustomLog logs/mkt-access_log common

</VirtualHost>

(3)重启httpd,在查看虚拟端口是否都开启了

[root@ttttttttt ll]# netstat -tupln| grep httpd

tcp        0      0 :::8000     :::*                        LISTEN      6182/httpd          

tcp        0      0 :::800    :::*                        LISTEN      6182/httpd          

tcp        0      0 :::80     :::*                        LISTEN      6182/httpd          

tcp        0      0 :::443   :::*                        LISTEN      6182/httpd 

(4)在客户端访问基于端口的结果:

Apache服务器的搭建

五、基于主机头的虚拟主机

少量ip             多个名字         端口80         多个站点

192.168.101.200                        /var/www/html

               tec.abc.com                       /var/www/tec 

               mkt.abc.com                       /var/www/mkt

(1)编译数据库文件:/var/named/chroot/var/named/abc.com.db

$TTL    86400

@               IN SOA  ns.abc.com.       root (

                                        42              ; serial (d. adams)

                                        3H              ; refresh

                                        15M             ; retry

                                        1W              ; expiry

                                        1D )            ; minimum

                IN NS           ns.abc.com.

ns              IN A            192.168.20.88

www             IN A            192.168.20.88

tec             IN CNAME                www    把他们做成别名

mkt             IN CNAME                www

(2)编译:/etc/httpd/conf/httpd.conf 

Listen 80     取消其他监听的端口

 NameVirtualHost  192.168.20.88:80  (990多行)   基于主机头的虚拟主机  

更改站点属性:

 <VirtualHost 192.168.20.88:80>

     ServerAdmin testlt@126.com

     DocumentRoot /var/www/html

     ServerName 

    ErrorLog logs/www-error_log

   CustomLog logs/www-access_log common

 </VirtualHost>

 <VirtualHost 192.168.20.88:80>

     ServerAdmin testlt@126.com

     DocumentRoot /var/www/tec

    ServerName tec.abc.com

     ErrorLog logs/tec-error_log

     CustomLog logs/tec-access_log common

</VirtualHost>

 <VirtualHost 192.168.20.88:80>

    ServerAdmin testlt@126.com

    DocumentRoot /var/www/mkt

     ServerName mkt.abc.com

     ErrorLog logs/mkt-error_log

    CustomLog logs/mkt-access_log common

</VirtualHost>

(3)重启一下httpd,与dns服务,然后在客户端进行访问:

首先清除客户点dns闪存 ipconfig /flushdns

Apache服务器的搭建

测试站点的承载��力:

ab apache  benchmark

ab -c 同时在线的用户数量 -n 并发请求数量    

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/wyywyp.html