Apache服务

1. httpd简介


httpd是Apache超文本传输协议(HTTP)服务器的主程序。被设计为一个独立运行的后台进程,它会建立一个处理请求的子进程或线程的池。

通常,httpd不应该被直接调用,而应该在类Unix系统中由apachectl调用,在Windows中作为服务运行。

2. httpd版本


本文主要介绍httpd的两大版本,httpd-2.2和httpd-2.4。

  • CentOS6系列的版本默认提供的是httpd-2.2版本的rpm包
  • CentOS7系列的版本默认提供的是httpd-2.4版本的rpm包

3. httpd基础


3.1 httpd自带的工具程序

工具功能
htpasswdbasic认证基于文件实现时,用到的帐号密码生成工具
apachectlhttpd自带的服务控制脚本,支持start,stop,restart
apxs由httpd-devel包提供的,扩展httpd使用第三方模块的工具
rotatelogs日志滚动工具
suexec访问某些有特殊权限配置的资源时,临时切换至指定用户运行的工具
abapache benchmark,httpd的压力测试工具

3.2 rpm包安装的httpd程序环境

文件/目录对应的功能
/var/log/httpd/access.log访问日志
/var/log/httpd/error_log错误日志
/var/www/html/站点文档目录
/usr/lib64/httpd/modules/模块文件路径
/etc/httpd/conf/httpd.conf主配置文件
/etc/httpd/conf.modules.d/*.conf模块配置文件
/etc/httpd/conf.d/*.conf辅助配置文件

3.3 web相关的命令

3.3.1 curl命令

curl是基于URL语法在命令行方式下工作的文件传输工具,它支持FTP,FTPS,HTTP,HTTPS,GOPHER,TELNET,DICT,FILE及LDAP等协议。

curl支持以下功能:

https认证
http的POST/PUT等方法
ftp上传
kerberos认证
http上传
代理服务器
cookies
用户名/密码认证
下载文件断点续传
socks5代理服务器
通过http代理服务器上传文件到ftp服务器
curl -o [下载的位置以及文件名] 下载地址

3.3.2 httpd命令

/语法:httpd [options]
//常用的options:
    -l      //查看静态编译的模块,列出核心中编译了哪些模块。 \
            //它不会列出使用LoadModule指令动态加载的模块
    -M      //输出一个已经启用的模块列表,包括静态编译在服务 \
            //器中的模块和作为DSO动态加载的模块
    -v      //显示httpd的版本,然后退出
    -V      //显示httpd和apr/apr-util的版本和编译参数,然后退出
    -X      //以调试模式运行httpd。仅启动一个工作进程,并且 \
            //服务器不与控制台脱离
    -t      //检查配置文件是否有语法错误

4.编译安装httpd-2.4

4.1 访问控制法则:

法则功能
Require all granted允许所有主机访问
Require all deny拒绝所有主机访问
Require ip IPADDR授权指定来源地址的主机访问
Require not ip IPADDR拒绝指定来源地址的主机访问
Require host HOSTNAME授权指定来源主机名的主机访问
Require not host HOSTNAME拒绝指定来源主机名的主机访问
IPADDR的类型HOSTNAME的类型
IP:192.168.1.1
Network/mask:192.168.1.0/255.255.255.0
Network/Length:192.168.1.0/24
Net:192.168
FQDN:特定主机的全名
DOMAIN:指定域内的所有主机

注意:httpd-2.4版本默认是拒绝所有主机访问的,所以安装以后必须做显示授权访问


//安装开发环境
//先查看需要安装的开发环境
[root@2 ~]# yum group list
Loaded plugins: product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Available Environment Groups:
   Minimal Install
   Infrastructure Server
   File and Print Server
   Basic Web Server
   Virtualization Host
   Server with GUI
Available Groups:
   Compatibility Libraries
   Console Internet Tools
   Development Tools
   Graphical Administration Tools
   Legacy UNIX Compatibility
   Scientific Support
   Security Tools
   Smart Card Support
   System Administration Tools
   System Management
Done

//安装需要的开发环境
[root@2 ~]# yum -y groupinstall "Development Tools"
[root@2 ~]# yum -y install openssl-devel pcre-devel expat-devel libtoo
[root@2 ~]# groupadd -r apache
[root@2 ~]# useradd -r -M -s /sbin/nologin -g apache apache


//下载并安装apr和apr-util
//下载apr和apr-util
[root@2 src]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-1.6.5.tar.bz2 https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-util-1.6.1.tar.bz2 https://mirrors.tuna.tsinghua.edu.cn/apache/httpd/httpd-2.4.37.tar.bz2

安装apr
[root@2 src]# tar xf apr-1.6.5.tar.bz2 
[root@2 src]# cd apr-1.6.5
[root@2 apr-1.6.5]# vim configure
		fgfile="${ofile}T"
    	trap "$RM \"$cfgfile\"; exit 1" 1 2 15
    	# $RM "$cfgfile"        //将此行加上注释,或者删除此行
 [root@2 apr-1.6.5]# ./configure --prefix=/usr/local/ap

//编译和安装
[root@2 apr-1.6.5]# make && make install

安装apr-util
[root@2 src]# tar xf apr-util-1.6.1.tar.bz2 
[root@2 src]# cd apr-util-1.6.1
[root@2 apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/

//编译和安装
[root@2 apr-util-1.6.1]# make && make install

//安装http
[root@2 src]# tar xf httpd-2.4.37.tar.bz2 
[root@2 src]# cd httpd-2.4.37
[root@2 httpd-2.4.37]# ./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --sysconfdir=/etc/httpd24 --with-mpm=prefork


//编译和安装
[root@2 httpd-2.4.37]# make && make install

//定义环境变量
[root@2 ~]# cd /etc/profile.d/
[root@2 profile.d]# vim apache.sh
[root@2 profile.d]# cat apache.sh
export PATH=/usr/local/apache/bin:$PATH
[root@2 profile.d]# . apache.sh


//开启80端口
在httpd的主配置文件进行修改,因为这是源码安装,所以主配置文件是/etc/httpd24/httpd.conf

5. 配置虚拟主机

5.1 相同IP不同端口

添加监听端口
[root@2 htdocs]# vim /etc/httpd24/httpd.conf
...
Listen 8080
....
<VirtualHost 192.168.23.132:80>
    ServerName www.dsz.com
    DocumentRoot "/usr/local/apache/htdocs/dsz"
    ErrorLog "logs/dsz_error_log"
    CustomLog "logs/dsz_access_log" combined
    <Directory //usr/local/apache/htdocs/dsz>
        <RequireAll>
        Require all granted
        </RequireAll>
    </Directory>
</VirtualHost>
# virtual host 2     # 虚拟主机2的配置
<VirtualHost 192.168.23.132:8080>
    ServerName www.zml.com
    DocumentRoot "//usr/local/apache/htdocs/zml"
    ErrorLog "logs/zml_error_log"
    CustomLog "logs/zml_access_log" combined
    <Directory /usr/local/apache/htdocs/zml>
    </Directory>
</VirtualHost>
//创建网页目录并修改属主属组
[root@2 htdocs]# chown -R apache.apache htdocs/

//在浏览器上进行测试
在这里插入图片描述在这里插入图片描述

5.2 不同IP相同端口

//在服务端上添加一个ip
[root@2 ~]# ip addr add 192.168.23.200 dev ens32
[root@2 ~]# ip a
[root@2 htdocs]# vim /etc/httpd24/httpd.conf
<VirtualHost 192.168.23.132:80>
    ServerName www.dsz.com
    DocumentRoot "/usr/local/apache/htdocs/dsz"
    ErrorLog "logs/dsz_error_log"
    CustomLog "logs/dsz_access_log" combined
    <Directory //usr/local/apache/htdocs/dsz>
        <RequireAll>
        Require all granted
        </RequireAll>
    </Directory>
</VirtualHost>
# virtual host 2     # 虚拟主机2的配置
<VirtualHost 192.168.23.181:80>
    ServerName www.zml.com
    DocumentRoot "//usr/local/apache/htdocs/zml"
    ErrorLog "logs/zml_error_log"
    CustomLog "logs/zml_access_log" combined
    <Directory /usr/local/apache/htdocs/zml>
    </Directory>
</VirtualHost>
[root@2 htdocs]# ip addr add 192.168.23.200 dev ens32
[root@2 htdocs]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:80:44:2d brd ff:ff:ff:ff:ff:ff
    inet 192.168.23.132/24 brd 192.168.23.255 scope global ens32
       valid_lft forever preferred_lft forever
    inet 192.168.23.200/32 scope global ens32
       valid_lft forever preferred_lft forever

//在浏览器上测试
在这里插入图片描述在这里插入图片描述

5.3 相同IP相同端口不同域名

[root@2 htdocs]# vim /etc/httpd24/httpd.conf
<VirtualHost 192.168.23.132:80>
    ServerName www.dsz.com
    DocumentRoot "/usr/local/apache/htdocs/dsz"
    ErrorLog "logs/dsz_error_log"
    CustomLog "logs/dsz_access_log" combined
    <Directory //usr/local/apache/htdocs/dsz>
        <RequireAll>
        Require all granted
        </RequireAll>
    </Directory>
</VirtualHost>
# virtual host 2     # 虚拟主机2的配置
<VirtualHost 192.168.23.132:80>
    ServerName www.zml.com
    DocumentRoot "//usr/local/apache/htdocs/zml"
    ErrorLog "logs/zml_error_log"
    CustomLog "logs/zml_access_log" combined
    <Directory /usr/local/apache/htdocs/zml>
    </Directory>
</VirtualHost>

//在客户机上验证
1.修改hosts文件
在这里插入图片描述
//在浏览器上测试
在这里插入图片描述在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值