centos 6.7之httpd配置

前言:

http在osi中的位置:

在osi的七层模型中,http(hyper text tranfer protocol)位于第七层应用层,是一种本地与网络主机连接传输的协议,其部分基于位于第四层传输层的TCP协议(还有UDP协议),而TCP协议又是基于第三层网络层的IP协议。

http与httpd的关系

实现httpd应用协议的web服务器现在主流有三种:

httpd,也就是大家熟知的apache服务中的主程序

ngnix

lighttpd

-------------------------分割线--------------------------

centos 6默认httpd版本为2.2版本,centos 7默认httpd为2.4版本

一、httpd的安装

 yum -y install httpd

a.通过rpm -ql httpd命令可以观察

1.配置文件:/etc/httpd/conf/httpd.conf

其中额外的配置文件目录:/etc/httpd/conf.d/*.conf,适用配置虚拟主机等

2.程序文件:/usr/sbin/httpd

3.日志文件:/var/log/httpd

4.模块文件:/usr/lib64/httpd/modules

b.httpd服务相关状态及启用

service httpd start  //启动httpd服务

service httpd restart //重启httpd服务

service httpd reload  //重读httpd服务配置

chkconfig httpd on|off //开机自启或关闭httpd服务

二、httpd的基本配置

a.监听端口修改

1.vim /etc/httpd/conf/httpd.conf

2.搜索Listen

3.修改格式Listen [IP:] PORT

4.实例:Listen 172.16.45.67:8080

5.httpd -t检查语法

6.service httpd reload|restart

注意点:Listen中的如果要添加ip,一定为本机ip

修改ip后,一定要进行service restart

同一个端口不能出现两个不同的ip

b.DSO:Dynamic shared objects动态共享模块

1.vim /etc/httpd/conf/httpd.conf

2.搜索LoadModule

3.不需要的模块可进行注释

4.模块切换:修改/etc/sysconfig/httpd中的HTTPD值

HTTPD=/usr/sbin/httpd|httpd.worker|httpd.event

5.查看静态编译模块:httpd -l

c.站点访问控制

1.基于ip地址的访问控制

vim /etc/httpd/conf/httpd.conf

搜索DocumentRoot找到根目录

然后添加如下代码

<Directory "PATH/TO/SOME_DIR">  //PATH路径为根目录地址
        Order allow,deny
    Allow from 172.16
    Deny from 172.16.45.72
    Deny from all
</Directory>

其中ip来源请求是遵循最佳匹配法则机制

如果上实例:172.16.45.72不可访问,

172.16.45.01可以访问

192.168.1.10不可访问

2.基于文件系统和用户进行控制

vim /etc/httpd/conf/httpd.conf

搜索DocumentRoot找到根目录

然后添加如下代码

<Directory "/PATH/TO/SOME_DIR">
    Options None
    AllowOverride None
    AuthType Basic
    AuthName "SOME_STRING_HERE"  //显示给用户的信息
    AuthUserFile "/PATH/TO/HT_PASSWD_FILE"     //AuthUserFile "/etc/httpd/conf/.htpasswd "
    Require user user1 user2...   //也可以使用Require valid-user 表示所有用户都合法
</Directory>

其中用户密码可以使用htpasswd命令来生成

htpasswd [options] /PATH/TO/HT_PASSWD_FILE USERNAME

3.基于组账号进行控制

设置同用户账号设置,但在代码中新加入了组的控制

<Directory "/PATH/TO/SOME_DIR">
    Options None
    AllowOverride None
    AuthType Basic
    AuthName "SOME_STRING_HERE"
    AuthUserFile "/PATH/TO/HT_PASSWD_FILE"
    AuthGroupFile "/PATH/TO/HT_GROUP-FILE"    //authgroupfile "/etc/httpd/conf/.groupwd"
            //然后在/etc/httpd/conf/.groupwd编写 mygroup:user1 user2
    Require group grp1 grp2...      //grp1填写mygroup,与上述文件中内容的名称一致
</Directory>

d.定义站点别名

vim /etc/httpd/conf/httpd.conf

别名定义格式:Alias /URL/ "/PATH/TO/SOME_DIR/"

实例:Alias /images/ "/var/www/html/pictures/"

其中"/var/www/html"为DocumentRoot值

说明:其中images并非为系统具体目录,即/var/www/html/pictures/存在一个logo.jpg的文件时,使用172.16.45.67/images/logo.jpg可以访问到该文件,images即相当于是/var/www/html/pictures

e.日志设定

日志格式:LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

%h:remote host
%l:remote logname(from identd)
%u:remote user(from auth)
%t:time the request was received(stand english format)
"%r":first line request
%s:status code for request tha got internally redirected
%b:size of response in bytes,excluding HTTP headers
"%{Referer}i":The contents of Referer header line(s) in the request sent to the server
        //发送到服务器的请求引用者的首部的内容 i表示取其值
"%{User-Agent}i":The contents of User-Agent header line(s) in the request sent to the server
        //客户端的浏览器类型

f.虚拟主机设定

虚拟主机设定有用种:基于ip,基于端口,基于FQDN,三种设定基本类似

本文以基于ip作示例:

1.vim /etc/httpd/conf.d/vhost1.conf  //不在conf/httpd.conf中直接修改

修改NameVirtualHost值,其中ip监听地址为本机地址

2.在vhost1.conf中加入以下代码

<VirtualHost 172.16.45.71:80>
    ServerName www1.magedu.com
    DocumentRoot /tmp/vhosts/www1
</VirtualHost>

在/tmp/vhost/www1文件夹中加入index.html,并写入内容,访问172.16.45.71即可查看到内容

练习:写一个脚本,批量生成10个FQDN虚拟主机配置:

要求配置文件为/etc/httpd/conf.d/virhost#.conf

#/bin/bash
#
#
Ip=$(ifconfig | head -n 3 | grep "inet addr" | awk -F: ‘{print $2}‘| awk ‘{print $1}‘)
    //提取本机ip
echo "your IP is $Ip"
cp /etc/httpd/conf/httpd.conf{,.bak}
    //备份httpd配置文件
sed -i "[email protected]*\<NameVirtualHost\>.*@NameVirtualHost $Ip:[email protected]" /etc/httpd/conf/httpd.conf
    //更改NameVirtualHost值,启用虚拟主机
Virtualhost() {
    echo "<VirtualHost $Ip:80>" >/etc/httpd/conf.d/virhost$1.conf
    echo -e "\tServerName www$1.chunlanyy.com" >>/etc/httpd/conf.d/virhost$1.conf
    echo -e "\tDocumentRoot /tmp/virhost/www$1" >>/etc/httpd/conf.d/virhost$1.conf
    mkdir -p /tmp/vhost/www$1
    echo "</VirtualHost>" >>/etc/httpd/conf.d/virhost$1.conf
}
        //函数进行配置文件的写入
Hostfile(){
    mkdir -p /tmp/virhost/www$1/
    touch /tmp/virhost/www$1/index.html
    echo "<h1>www$1 site</h1>" >/tmp/virhost/www$1/index.html
}
        //函数进行访问显示内容的写入
for I in {1..10};do
    Virtualhost $I
    Hostfile $I
done
echo "virtualhosts has setup"

修改172.16.45.72主机的/etc/hosts内容

172.16.45.67 www1.chunlanyy.com

172.16.45.67 www2.chunlanyy.com

...

依次将10个名称写完

然后再使用172.16.45.72主机进行访问,结果如下

[[email protected] tmp]# curl www{1..10}.chunlanyy.com
<h1>www1 site</h1>
<h1>www2 site</h1>
<h1>www3 site</h1>
<h1>www4 site</h1>
<h1>www5 site</h1>
<h1>www6 site</h1>
<h1>www7 site</h1>
<h1>www8 site</h1>
<h1>www9 site</h1>
<h1>www10 site</h1>
时间: 2024-11-05 19:01:32

centos 6.7之httpd配置的相关文章

Centos Apache和tomcat集成配置,同时支持PHP和JAVA运行

最近由于项目的需要,需要再原来运行Tomcat服务器上支持PHP运行.很显然,PHP运行使用的是Apache服务器.虽然Tomcat也属于Apache,但是并没有现有的环境,需要我们自己手动配置.顺便说一下,我们使用的服务器环境是Centos6.4 . 我也是第一次搭建这个环境,没有经验,身边的同事也都没有整合过.所以最好的方法肯定是找度娘了. 但是,我发现网上的东西那叫一个又杂又乱,我保证你看了十篇文章,你也无法搭建成功.主要原因是转载的文章太多,而转载者也并非都是作者或者是专家.所以,文章要

MongoDB 3.2 在CentOS 上的安装和配置

MongoDB 3.2 在CentOS 上的安装和配置 2016-01-06 14:41:41 发布 您的评价:       0.0   收藏     0收藏 一.安装 编辑/etc/yum.repos.d/mongodb-org-3.2.repo [mongodb-org-3.2] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/ gpg

centos LAMP第二部分apache配置 第二十节课

centos   LAMP第二部分apache配置  第二十节课 上半节课 下半节课 f

CentOS 6.6 sudo日志配置

CentOS 6.6 sudo日志配置 查询syslog和sudo软件是否已安装 [[email protected] ~]# rpm-qa|egrep "sudo|syslog" rsyslog-5.8.10-8.el6.x86_64 sudo-1.8.6p3-15.el6.x86_64 配置/etc/sudoers文件 [[email protected] ~]# echo"Defaults    logfile=/var/log/sudo.log">&g

如何在 CentOS 7 中安装、配置和安全加固 FTP 服务

步骤 1:安装 FTP 服务器 1. 安装 vsftpd 服务器很直接,只要在终端运行下面的命令. # yum install vsftpd 2. 安装完成后,服务先是被禁用的,因此我们需要手动启动,并设置在下次启动时自动启用: # systemctl start vsftpd # systemctl enable vsftpd 3. 接下来,为了允许从外部系统访问 FTP 服务,我们需要打开 FTP 守护进程监听的 21 端口: # firewall-cmd --zone=public --p

centos和redhat下 uwsgi配置

1.下载最新稳定版uwsgi,地址为: wget http://projects.unbit.it/downloads/uwsgi-1.9.13.tar.gz 2.解压 tar zxvf uwsgi-1.9.13.tar.gz 3.cd uwsgi-1.9.13 && make 4.移动uwsgi到bin目录,方便调用 mv ./uwsgi /usr/bin 5.进入用户目录建立projectname.ini文件,内容为:[uwsgi]socket = 127.0.0.1:3031chdi

CentOS多网卡重命名配置

CentOS多网卡重命名配置 在CentOS7中我安装了3块网卡,但是名字是enoxxxxx的格式,让我这个有强迫症的***座很是不爽,以下是我配置网卡并且重命名为ethx的详细步骤 前提工作要做好: 1.查看网卡UUID # nmcli con show 名称  UUID                                  类型            设备 eth1  dfc9199c-7b47-4209-a396-109bf44e683a  802-3-ethernet  et

CentOS中vsftp安装与配置

1. 安装使用chkconfig --list来查看是否装有vsftpd服务:使用yum命令直接安装:yum -y install vsftpd然后为它创建日志文件:touch /var/log/vsftpd.log 2.建立ftp用户及主目录:    # mkdir /var/ftp    # useradd -d /var/ftp ftp 3. 配置vsftp服务编辑/etc/vsftpd/vsftpd.conf文件,配置vsftp服务:#vi /etc/vsftpd/vsftpd.conf

VirtualBox 下CentOS 和 win7 共享的配置

配置一个共享文件夹 名为MyShare 将增强功能包载入CD 然后进入 CentOS 输入 ls /dev 就可以看到挂载cd 名字为dvd 或者后面还带数字 然后挂载 mount -t iso9660 /dev/dvd1 /media/cdrom cd /media/cdrom 开始安装 ./VBoxLinuxAdditions.run 如果编译出错就 yum install make gcc kernel kernel-develop 或者直接 yum groupinstall "Devel