-
httpd
2019-04-18 18:10:14文章目录httpd简介httpd的特性httpd相关命令及配置文件rpm包安装的配置文件httpd自带的工具程序相关命令编译安装httpd-2.4 httpd简介 httpd是Apache超文本传输协议(HTTP)服务器的主程序,被设计为一个独立运行...文章目录
httpd简介
- httpd是Apache超文本传输协议(HTTP)服务器的主程序,被设计为一个独立运行的后台进程,它会建立一个处理请求的子进程或线程的池
- 6系列的版本默认提供的是httpd-2.2版本的rpm包;7系列的版本默认提供的是httpd-2.4版本的rpm包
httpd的特性
工作模型 工作方式 prefork 多进程模型,预先生成进程,一个请求用一个进程响应
一个主进程负责生成n个子进程,子进程也称为工作进程
每个子进程处理一个用户请求,即使没有用户请求,也会预先生成多个空闲进程,随时等待请求到达
最大不会超过1024个worker 基于线程工作,一个请求用一个线程响应(启动多个进程,每个进程生成多个线程) event 基于事件的驱动,一个进程处理多个请求 - 2.4版本相比之前版本新增的模块
模块 功能 mod_proxy_fcgi 反向代理时支持apache服务器后端协议的模块 mod_ratelimit 提供速率限制功能的模块 mod_remoteip 基于ip的访问控制机制被改变,不再支持使用Order,Deny,Allow来做基于IP的访问控制 httpd相关命令及配置文件
rpm包安装的配置文件
- /var/log/httpd/access.log:访问日志
- /var/log/httpd/error_log:错误日志
- /var/www/html/:站点文档目录(yum)
- /usr/local/apache/htdocs:站点文档目录(源码)
- /usr/lib64/httpd/modules/:模块文件路径
- /etc/httpd/conf/httpd.conf:主配置文件
- /etc/httpd/conf.modules.d/*.conf:模块配置文件
- /etc/httpd/conf.d/*.conf:辅助配置文件
httpd自带的工具程序
- htpasswd:basic认证基于文件实现时,用到的帐号密码生成工具
- apachectl:httpd自带的服务控制脚本,支持start,stop,restart
- apxs:由httpd-devel包提供的,扩展httpd使用第三方模块的工具
- rotatelogs:日志滚动工具
- suexec:访问某些有特殊权限配置的资源时,临时切换至指定用户运行的工具
- ab:apache benchmark,httpd的压力测试工具
相关命令
curl
- curl是基于URL语法在命令行方式下工作的文件传输工具
- 支持FTP,FTPS,HTTP,HTTPS,GOPHER,TELNET,DICT,FILE及LDAP等协议
- 功能有很多:https认证、http的POST/PUT等方法、ftp上传、kerberos认证、http上传、代理服务器、cookies、用户名/密码认证等
- 最常用于下载
语法:curl [options] [URL ...] -o/--output //把输出写到文件中 -e/--referer <URL> //来源网址 [root@localhost ~]# curl -o myblog.html http://blog.51cto.com/itchentao % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 67025 0 67025 0 0 87248 0 --:--:-- --:--:-- --:--:-- 87385 [root@localhost ~]# ls myblog.html
httpd
httpd [options] -l //查看静态编译的模块,列出核心中编译了哪些模块 -M //输出一个已经启用的模块列表 -v`//显示httpd的版本,然后退出 -V //显示httpd和apr/apr-util的版本和编译参数,然后退出 -X //以调试模式运行httpd,ctrl+c退出 -t //检查配置文件是否有语法错误
编译安装httpd-2.4
准备环境
- 需yum安装Development Tools
- 需yum安装openssl-devel、pcre-devel、expat-devel、libtool
- 需编译安装apr-1.4、apr-util-1.4(1.4以上版本)
- 编译安装httpd-2.4
[root@l134~]# yum groupinstall "Development Tools" ... [root@134 ~]# yum -y install openssl-devel pcre-devel expat-devel libtool ... [root@134 ~]# ls apr-1.6.5.tar.bz2 apr-util-1.6.1.tar.bz2 httpd-2.4.39.tar.gz [root@134 ~]# tar -xf apr-1.6.5.tar.bz2 [root@134 ~]# tar -xf apr-util-1.6.1.tar.bz2 [root@134 ~]# tar -xf httpd-2.4.39.tar.gz [root@134 ~]# ls apr-1.6.5 apr-util-1.6.1 httpd-2.4.39 apr-1.6.5.tar.bz2 apr-util-1.6.1.tar.bz2 httpd-2.4.39.tar.gz [root@134 ~]# cd apr-1.6.5 [root@134 apr-1.6.5]# vim configure cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 # $RM "$cfgfile" //将此行加上注释,或者删除此行 //编译安装apr-1.6.5 [root@134 apr-1.6.5]# ./configure --prefix=/usr/local/apr ... [root@134 apr-1.6.5]#make && make install ... //编译安装apr-util-1.6.1 [root@134 ~]# cd apr-util-1.6.1/ [root@134 apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr ... [root@134 apr-util-1.6.1]#make && make install ... //编译安装httpd2.4 [root@134 ~]# cd httpd-2.4.39 [root@134 httpd-2.4.39]# ./configure --prefix=/usr/local/apache \ --sysconfdir=/etc/httpd24 \ --enable-so \ --enable-ssl \ --enable-cgi \ --enable-rewrite \ --with-zlib \ --with-pcre \ --with-apr=/usr/local/apr \ --with-apr-util=/usr/local/apr-util/ \ --enable-modules=most \ --enable-mpms-shared=all \ --with-mpm=prefork [root@134 httpd-2.4.39]# make && make install [root@134 httpd-2.4.39]# cd /usr/local/apache/ [root@134 apache]# ls bin build cgi-bin error htdocs icons include logs man manual modules //如果安装时不是使用的默认路径,则必须要修改PATH环境变量,以能够识别此程序的二进制文件路径 [root@134 ~]# echo 'export PATH=/usr/local/apache/bin:$PATH' > /etc/profile.d/httpd.sh [root@134 ~]# cat /etc/profile.d/httpd.sh export PATH=/usr/local/apache/bin:$PATH
httpd常用配置
切换使用MPM
- yum安装:/etc/httpd/conf.modules.d/00-mpm.conf:切换使用MPM(工作模型)
- prefork
- event
- worker
#LoadModule mpm_event_module modules/mod_mpm_event.so //将注释注释去掉,或者修改成需要的工作模型
- 源码安装:就在主配置文件中(/etc/httpd/httpd.conf)
- 模块文件在/usr/local/apache/modules中以.so结尾的文件
#LoadModule mpm_event_module modules/mod_mpm_event.so LoadModule mpm_prefork_module modules/mod_mpm_prefork.so #LoadModule mpm_worker_module modules/mod_mpm_worker.so
访问控制法则
- 可针对全局设置,也可针对某个目录做访问控制
法则 功能 Require all granted 允许所有主机访问 Require all denied 拒绝所有主机访问 Require ip IPADDR 授权指定来源地址的主机访问 Require not ip IPADDR 拒绝指定来源地址的主机访问 Require host HOSTNAME 授权指定来源主机名的主机访问 Require not host HOSTNAME 拒绝指定来源主机名的主机访问 IPADDR的类型
- 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
HOSTNAME的类型
- FQDN:特定主机的全名(如www.baidu.com)
- DOMAIN:指定域内的所有主机(如*.baidu.com)
//拒绝192.168.1.20主机访问,写在主配置文件中 //如果设置只有192.168.1.20主机能访问,则不需要<RequireAll>和Require all granted <Directory /var/www/html/www> <RequireAll> Require not ip 192.168.1.20 Require all granted </RequireAll> </Directory>
注:httpd-2.4版本默认是拒绝所有主机访问的,所以安装以后必须做显示授权访问
虚拟主机
- 相同IP不同端口
[root@134 ~]#vim /etc/httpd/conf/httpd.conf ... ServerName www.example.com:80 //将此行的注释取消 ... //因需要在主配置文件中加入示例文件,可用yum安装httpd //然后查找*vhosts.conf,复制其中示例到源码安装的httpd的主配置文件中 [root@134 ~]# vim /usr/share/doc/httpd-2.4.6/httpd-vhosts.conf <VirtualHost *:@@Port@@> ServerAdmin webmaster@dummy-host.example.com DocumentRoot "@@ServerRoot@@/docs/dummy-host.example.com" ServerName dummy-host.example.com ServerAlias www.dummy-host.example.com ErrorLog "/var/log/httpd/dummy-host.example.com-error_log" CustomLog "/var/log/httpd/dummy-host.example.com-access_log" common </VirtualHost> //VirtualHost *:*表示所有Ip //@@Port@@:表示端口号 //ServerAdmin:表邮箱地址,有故障信息发送给谁,可删除 //DocumentRoot:定义网站存放位置 //ServerName:域名 //ServerAlias:别名,可删除 //ErrorLog :错误日志 //CustomLog:访问日志 //将以上内容复制到httpd.conf最后面,然后修改 //2.2的版本需要在<VirtualHost *:80>前加NameVirtuaHost [root@134 ~]# vim /etc/httpd24/httpd.conf <VirtualHost *:80> DocumentRoot "/usr/local/apache/htdocs/aaaa" ServerName aaaa.example.com ErrorLog "logs/aaaa.example.com-error_log" CustomLog "logs/aaaa.example.com-access_log" common </VirtualHost> <VirtualHost *:81> DocumentRoot "/usr/local/apache/htdocs/bbbb" ServerName bbbb.example.com ErrorLog "logs/bbbb.example.com-error_log" CustomLog "logs/bbbb.example.com-access_log" common </VirtualHost> //因为是监听不同端口,所以还需在 Listen 80下加入Listen 81 [root@134 ~]#mkdir /usr/local/apache/htdocs/aaaa [root@134 ~]#mkdir /usr/local/apache/htdocs/bbbb [root@134 ~]# apachectl -t Syntax OK [root@aaaa]# echo "hello-aaaa" > index.html [root@bbbb]# echo "hello-bbbb" > index.html
- 不同IP相同端口
//测试,临时给网卡加个ip [root@134 ~]# ip addr add 192.168.184.135/24 dev ens33 [root@134 ~]# ip a ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:0c:29:ba:de:cc brd ff:ff:ff:ff:ff:ff inet 192.168.184.134/24 brd 192.168.184.255 scope global noprefixroute dynamic ens33 valid_lft 1758sec preferred_lft 1758sec inet 192.168.184.135/24 scope global secondary ens33 valid_lft forever preferred_lft forever inet6 fe80::c2b0:554c:2a7c:e651/64 scope link noprefixroute valid_lft forever preferred_lft forever //httpd.conf配置文件中 <VirtualHost 192.168.184.134:80> DocumentRoot "/usr/local/apache/htdocs/aaaa" ServerName aaaa.example.com ErrorLog "logs/aaaa.example.com-error_log" CustomLog "logs/aaaa.example.com-access_log" common </VirtualHost> <VirtualHost 192.168.184.135:80> DocumentRoot "/usr/local/apache/htdocs/bbbb" ServerName bbbb.example.com ErrorLog "logs/bbbb.example.com-error_log" CustomLog "logs/bbbb.example.com-access_log" common </VirtualHost>
- 相同IP相同端口不同域名(实际环境最常用)
<VirtualHost *:80> DocumentRoot "/usr/local/apache/htdocs/aaaa" ServerName aaaa.example.com ErrorLog "logs/aaaa.example.com-error_log" CustomLog "logs/aaaa.example.com-access_log" common </VirtualHost> <VirtualHost *:80> DocumentRoot "/usr/local/apache/htdocs/bbbb" ServerName bbbb.example.com ErrorLog "logs/bbbb.example.com-error_log" CustomLog "logs/bbbb.example.com-access_log" common </VirtualHost> //现在用另一台主机访问httpd服务机 [root@140 ~]# vim /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.184.134 aaaa.example.com 192.168.184.134 bbbb.example.com [root@140 ~]# curl http://aaaa.example.com hello-aaaa [root@140 ~]# curl http://bbbb.example.com hello-bbbb
配置https步骤
1、启用ssl模块
编辑/etc/httpd/conf.modules.d/00-base.conf文件;yum安装 编辑/etc/httpd24/http.conf主配置文件;源码安装 添加,或取消注释以下行 LoadModule ssl_module modules/mod_ssl.so
2、生成证书(实际环境证书需购买)
[root@140 ~]# cd /etc/pki/CA/ //生成秘钥 [root@140 CA]# (umask 077;openssl genrsa -out private/cakey.pem 2048) //提取公钥 [root@140 CA]# openssl rsa -in private/cakey.pem -pubout //CA生成自签署证书 [root@140 CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 365 You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [XX]:CN State or Province Name (full name) []:HuBei Locality Name (eg, city) [Default City]:WuHan Organization Name (eg, company) [Default Company Ltd]:aaaa.example.com Organizational Unit Name (eg, section) []:aaaa.example.com Common Name (eg, your name or your server's hostname) []:aaaa.example.com Email Address []:abc@qq.com [root@140 CA]# touch index.txt && echo 01 > serial [root@140 CA]# ls cacert.pem certs crl index.txt newcerts private serial //由于证书是给网站服务器用,所以此时的客户端就是网站服务器,需在网站服务器生成秘钥 [root@134 ~]# cd /etc/httpd24/ [root@134 httpd24]# mkdir ssl && cd ssl [root@134 ssl]# ls [root@134 ssl]# (umask 077;openssl genrsa -out httpd.key 2048) //客户端生成证书签署请求 [root@134 ssl]# openssl req -new -key httpd.key -days 365 -out httpd.csr You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [XX]:CN State or Province Name (full name) []:HuBei Locality Name (eg, city) [Default City]:WuHan Organization Name (eg, company) [Default Company Ltd]:aaaa.example.com Organizational Unit Name (eg, section) []:aaaa.example.com Common Name (eg, your name or your server's hostname) []:aaaa.example.com Email Address []:abc@qq.com Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: //客户端把证书签署请求文件发送给CA [root@134 ssl]# ls httpd.csr httpd.key [root@134 ssl]# scp httpd.csr root@192.168.184.140:/root //服务端中 [root@140 ~]# ls httpd.csr [root@140 ~]# openssl ca -in /root/httpd.csr -out httpd.crt -days 365 Using configuration from /etc/pki/tls/openssl.cnf Check that the request matches the signature Signature ok Certificate Details: Serial Number: 1 (0x1) Validity Not Before: Apr 20 06:01:16 2019 GMT Not After : Apr 19 06:01:16 2020 GMT Subject: countryName = CN stateOrProvinceName = HuBei organizationName = aaaa.example.com organizationalUnitName = aaaa.example.com commonName = aaaa.example.com emailAddress = abc@qq.com X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: OpenSSL Generated Certificate X509v3 Subject Key Identifier: 2C:01:34:9A:8E:6D:D5:0C:1A:7E:68:3E:C6:74:3A:8D:1E:C6:2B:62 X509v3 Authority Key Identifier: keyid:EF:98:CD:4B:7C:09:02:46:52:E1:92:A6:02:64:D8:CE:4D:EC:E2:17 Certificate is to be certified until Apr 19 06:01:16 2020 GMT (365 days) Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries Data Base Updated //生成证书httpd.crt [root@140 ~]# ls httpd.crt httpd.csr //将证书传回给客户端 [root@140 ~]# scp httpd.crt root@192.168.184.134:/root [root@134 ~]# mv httpd.crt /etc/httpd24/ssl/ [root@134 ~]# ll /etc/httpd24/ssl/ -rw-r--r--. 1 root root 4689 4月 20 14:05 httpd.crt -rw-r--r--. 1 root root 1074 4月 20 13:55 httpd.csr -rw-------. 1 root root 1675 4月 20 13:51 httpd.key
配置https
[root@134 ~]# /etc/httpd24/http.conf Include /etc/httpd24/extra/httpd-ssl.conf取消注释 [root@134 httpd24]# vim /etc/httpd24/extra/httpd-ssl.conf SSLSessionCache "shmcb:/usr/local/apache/logs/ssl_scache(512000)"//此行注释 DocumentRoot "/usr/local/apache/htdocs/aaaa" ServerName aaaa.example.com:443 ErrorLog "/usr/local/apache/logs/aaaa.example.com-error_log" TransferLog "/usr/local/apache/logs/aaaa.example.com-access_log" SSLCertificateFile "/etc/httpd24/ssl/httpd.crt" SSLCertificateKeyFile "/etc/httpd24/ssl/httpd.key"
总结
1、生成证书
2、主配置文件- 取消LoadModule ssl_module modules/mod_ssl.so注释
- 取消Include /etc/httpd24/extra/httpd-ssl.conf注释
- 取消Include /etc/httpd24/extra/httpd-vhosts.conf注释
3、相关配置
- /etc/httpd24/extra/httpd-ssl.conf配置证书位置;Include
- /etc/httpd24/extra/httpd-vhosts.conf配置虚拟主机
- 设置hosts以便用域名访问
-
httpd服务
2017-05-27 15:50:00httpd服务,apache,虚拟主机,路径访问控制httpd服务
Httpd服务
httpd是一个开源软件,且一般用作web服务器来使用。目前最流行的web服务器软件叫做httpd, 在早期的http server就叫做apache,到了http server 2.0以后就改名为httpd了。 所以有时候听到apache服务器和httpd服务器其实都是指得是一个意思。
####httpd生产的文件
httpd目前有多个版本,主流有两个版本分别为:2.2、2.4,在安装了httpd软件之后,会生成配置文件。
这些文件有:
其中主配置文件:/etc/httpd/conf/httpd.conf
分段配置文件:/etc/httpd/conf.d/.conf(一般自己定义配置在此文件下重新建立)
模块的目录:/etc/httpd/modules
日志目录:/etc/log/httpd/
访问日志为:./access_log
错误日志为:./err_log
网页的存放目录:/var/www/html
####httpd的特性:
高度模块化: core + modules
DSO:dynamic shared object
MPM:Multipath processing Modules (多路处理模块)
prefork:多进程模型,每个进程响应一个请求、一个主进程:负责生成子进程及回收子进程;负责创建套接字;
负责接收请求,并将其派发给某子进程进行处理,每个子进程处理一个请求。
worker:多进程多线程模型,每线程处理一个用户请求、一个主进程:负责生成子进程、负责创建套接字、
负责接收请求、并将其派发给某子进程进行处理,每个子进程负责生成多个线程,每个线程负责响应用户请求;
并发响应数量为:子进程数量*子进程创建的最大线程数量。
event:事件驱动模型,多进程模型,每个进程响应多个请求、一个主进程 :负责生成子进程、负责创建套接字、
负责接收请求,并将其派发给某子进程进行处理,子进程基于事件驱动机制直接响应多个请求。注:在/etc/httpd/conf.modules.d/00-mpm.conf切换工作模型
####httpd的功能特性:
CGI:Common Gateway Interface
虚拟主机:IP,PORT, FQDN
反向代理
负载均衡
路径别名
丰富的用户认证机制
basic
digest
支持第三方模块
####服务控制:
systemctl enable|disable httpd.service #开机启动与否
systemctl {start|stop|restart|status} httpd.service #单次操作状态
#####1、 监听地址端口
在主配置文件中/etc/httpd/conf/httpd.conf:
Listen IP:PORT,表示监听在该IP的PORT端口上,如果不写IP,表示监听本机所有可用IP地址,
另外,Listen指令可以出现多次,表示监听不同IP及不同端口上,修改完成后需要重启生效
注意:在修改完配置文件后需要使用:httpd –t 检查语法,语法没有问题才可继续其它操作
#####2、 持久连接
Persistent Connection:tcp连续建立后,每个资源获取完成后不全断开连接,而是继续等待其它资源请求的进行。
副作用:对并发访问量较大的服务器,长连接机制会使得后续某些请求无法得到正常响应。
解决方案:使用较短的持久连接时长,以及较少的请求数量;
KeepAlive On|Off 此功能开启|关闭
KeepAliveTimeout 15 时间限制15秒
MaxKeepAliveRequests 100 请求数量100以上表示:当一个连接建立,时间超过15秒或请求数量超过100个时,服务器会主动断开。
#####3、 MPM
文章开头已介绍,下面是配置选项与参数,
prefork的配置
worker的配置:
修改模型选项:/etc/httpd/conf.modules.d/00-mpm.conf
#####4、 DSO
配置指令模块加载,格式如下:
LoadModule <module_name> <module_path>
模块路径可以是相对路径,相对ServerRoot指令指向的位置
配置文件:/etc/httpd/conf.modules.d/00-proxy.conf
#####5、 定义Main server 文档页面路径
使用DocumentRoot指令,关联文档路径的映射
DocumentRoot指向路径问URL起始位置
如DocumetRoot “/var/www/html”
在本地有一个文件file在/var/www/html/filedir/file则URL访问路径为www.smartwy.com/filedir/file
#####6、 站点路径访问控制
可基于两种机制指明对哪些资源进行何种访问控制:
文件系统路径1,<Directory "/dir/"> ... </Directory> 2,<File "/dir/to/file"> ... </File> 3, <FileMatch "PATTERN"> ... </FileMatch>
下面以路径访问控制做简单介绍
<Directory "/var/www/cgi-bin"> AllowOverride None Options None Require all granted </Directory>
AllowOverride:与访问控制相关的哪些执行可以放在.htacesss文件中,每个目录下都可以有一个 , 但是使用.htacess会使得网站对目录下的资源解析变的非常慢,不推荐使用。ALL所有都可以放进去,None什么都不可以放。 Options:Indexs:指明的URL路径不存在与定义的主页面资源相符的资源文件时候,返回索引列表给用户, 目录浏览功能,一般关掉。 FollowSymLinks:允许跟踪符号链接文件所指向的源文件,跟踪符号链接,如果目录下存在软连接,则可以直接 访问软连接指向的文件 None:全部停用 All:全部启用 Httpd2.4使用:Require:对控制页面访问控制, Require all granted 全部允许访问 Require ip *.*.*.* 指定ip允许访问 Require host host_name 指定主机名允许方法 Httpd2.2使用:Order allow,deny 检查次序 Deny(黑名单) from 172.16.12.1 不允许172.16.12.1地址访问 Allow(白名单) from 172.16 仅允许172.16网段的地址访问 注意:指定访问控制时较小集合域放在前面
#####7、 定义站点主页面
DirectoryIndex index.html index.html.var
从左到右匹配到的文件,将作为默认主页返回
#####8、 日志
访问日志:access_log | -date
LogFormat “%h %l %u %t “%r” %>s %b “%{Referer}i” “%{User-Agent}i”” combined
LogFormat “%h %l %u %t “%r” %>s %b” common
LogFormat “%{Referer}i -> %U” referer
LogFormat “%{User-agent}i” agent
%h:客户端IP地址;
%l:Remote User, 通常为一个减号(“-”);
%u:Remote user (from auth; may be bogus if return status (%s) is 401);非为登录访问时,其为一个减号;
%t:服务器收到请求时的时间;
%r:First line of request,即表示请求报文的首行;记录了此次请求的“方法”,“URL”以及协议版本;
%>s:响应状态码;
%b:响应报文的大小,单位是字节;不包括响应报文的http首部;
%{Referer}i:请求报文中首部“referer”的值;即从哪个页面中的超链接跳转至当前页面的;
%{User-Agent}i:请求报文中首部“User-Agent”的值;即发出请求的应用程序。
错误日志:error_log | -date
错误级别:debug, info, notice, warn, error, crit, alert, emerg,
#####9、 基于用户访问控制
认证质询:
WWW-Authenticate:响应码为401,拒绝客户端请求,并说明要求客户端提供账号和密码;
认证:
Authorization:客户端用户填入账号和密码后再次发送请求报文;认证通过时,则服务器发送响应的资源;
认证方式有两种:
basic:明文
digest:消息摘要认证
用户的账号和密码存放于何处?
虚拟账号:仅用于访问某服务时用到的认证标识
存储:
文本文件;
SQL数据库;
ldap目录存储;
格式如下:
编写完成后,systemctl restart httpd.service重启httpd服务,
在浏览器地址栏内输入相应域名,会出现以下界面,填入上方指定的用户与密码便可继续访问。
下面是帐号与密码的创建与管理:
Htpasswd:专用命令完成此类文件的创建及用户管理
htpasswd [options] /PATH/TO/HTTPD_PASSWD_FILE username
-c:首次创建密码文件时使用,如再次使用会覆盖以前的密码文件
-m:md5格式加密
-s: sha格式加密
-D:删除指定用户
-b:批模式添加用户
htpasswd -b [options] /HTTPD_PASSWD_FILE username password
自定义密码文件路径,配置文件内路径要与实际文件路径相同,
使用组帐号进行认证
组文件编写:group: user1 user2 …(一行定义一个组)
组成员访问时与普通访问相同,密码创建也相同。
注意:修改配置文件后,检查语法httpd –t ,没有问题,重启httpd服务,配置才可生效。
#####10、 虚拟主机
一个物理主机可以服务与多个站点,每个站点可以通过一个或多个虚拟主机来实现。
有三种实现方案:
基于ip:为每个虚拟主机准备至少一个ip地址;
基于port:为每个虚拟主机使用至少一个独立的port;
基于FQDN:为每个虚拟主机使用至少一个FQDN;基于ip和基于port只做介绍说明,基于FQDN做实验说明: 基于IP的虚拟主机示例(在/etc/httpd/conf.d/下新建**.conf文件):
<VirtualHost 172.16.100.6:80> #端口相同,ip不同(确定主机有两个ip) ServerName www.a.com #虚拟服务器域名(基于IP与port实验没有影响) DocumentRoot "/www/dir" #指定站点根目录,实验时在根目录下新建index.html文件, 写一点测试信息在里面,方便查看实验效果。 </VirtualHost> <VirtualHost 172.16.100.7:80> ServerName www.b.net DocumentRoot "/www/dir" </VirtualHost> 可在浏览器地址栏中输入IP查看。 基于端口的虚拟主机(在/etc/httpd/conf.d/下新建**.conf文件): <VirtualHost 172.16.100.6:80> #IP相同,端口不同 ServerName www.a.com DocumentRoot "/www/dir" </VirtualHost> Listen 808 #开启监听808端口 <VirtualHost 172.16.100.6:808> ServerName www.b.net DocumentRoot "/www/dir" </VirtualHost> 可在浏览器地址栏中输入IP:PORT查看。 基于FQDN的虚拟主机(在/etc/httpd/conf.d/下新建**.conf文件): <VirtualHost 172.16.100.6:80> ServerName www.a.com DocumentRoot "/www/dir" </VirtualHost> <VirtualHost 172.16.100.6:80> ServerName www.b.net DocumentRoot "/www/dir" </VirtualHost> 可在浏览器地址栏中输入域名查看。
基于FQDN的虚拟主机实验: 1.1在/etc/httpd/conf.d目录下新建两个配置文件:
注意:如果是httpd-2.2,则使用基于FQDN的虚拟主机时,需要事先使用如下指令:
NameVirtualHost IP:PORT在设置的站点根目录下新建index.html文件,
编写完成后,httpd –t 检查语法,重启httpd服务。
1.2DNS正向解析:
将www.smartwy.com与www.magedu.com解析到172.16.253.190
/etc/named.rfc1912.conf添加以下内容
新建区域解析库/var/named/smartwy.com.zone编辑如下:
新建区域解析库/var/named/magedu.com.zone编辑如下:
以上配置要确保172.16.252.205处于被监听状态,与172.16.253.190联通,
执行named-checkconf,
named-checkzone “smartwy.com” 区域解析库名,
named-checkzone “magedu.com” 区域解析库名,
rndc reload 重新加载。
1.3 测试(使用的域名有可能在公网已被使用,可把DNS设为172.16.252.205防止公网影响)
#####11、 内置的server-status页面
在虚拟主机内添加/server-status选项
使用的是2.2版本,设置如下<Location /server-status> SetHandler server-status Order allow,deny Allow from 172.16 </Location>
Httpd –t 检查语法,重启服务,
在浏览器地址栏输入www.smartwy.com/server-status -
开启httpd
2018-11-03 09:04:45使用service httpd status查看httpd的运行状态 service httpd start service httpd stop 没有service httpd的话 httpd -k start使用service httpd status查看httpd的运行状态
service httpd start
service httpd stop
没有service httpd的话
httpd -k start
-
yum 安装 httpd报错 No package httpd available
2019-11-21 19:31:22安装httpd,如果出现No package httpd available,可以尝试: yum --disableexcludes=all install -y httpd安装httpd,如果出现No package httpd available,可以尝试:
yum --disableexcludes=all install -y httpd
-
安装httpd
2019-06-28 17:56:51第一步: 安装httpd ( yum会默认安装对应当前centos版本默认的httpd版本 ) yum install httpd 第二步: 检查http安装是否成功 apachectl -v -- 安装成功应显示相关信息: ... -
httpd配置
2018-05-22 14:00:58一、初识httpd httpd是Apache超文本传输协议(HTTP)服务器的主程序。被设计为一个独立运行的后台进程,它会建立一个处理请求的子进程或线程的池。 官方站点:www.apache.org 1、httpd的特性 ⑴高度... -
httpd服务器
2018-09-17 23:39:391.编译安装httpd-2.4 2.配置三种不同风格的虚拟主机 2.1 相同Ip不同端口 2.2 不同Ip相同端口 2.3相同IP相同端口不同域名 1.编译安装httpd-2.4 配置本地源 [root@httpd yum.repos.d]#... -
httpd服务器Failed to start httpd.service: Unit httpd.service is masked.解决办法
2020-08-08 17:08:54当我们启动httpd服务的时候,系统报错为 Failed to start httpd.service: Unit httpd.service is masked. 解决方法: systemctl unmask httpd.service然后在启动httpd服务并且查看端口80已启动: [root@A8 ~]#... -
Linux安装httpd
2019-03-28 18:39:00因为集群httpd的版本较低,故而出现安全漏洞。现对其进行升级,具体步骤如下:(rpm卸载原来的httpd此处不再赘述!!!) 一、首先下载相应版本的安装包 因为httpd依赖于apr和apr-util,故这两个包也一并下载。 ... -
启动httpd服务
2019-02-20 14:57:051、安装httpd:yum install httpd 2、启动:service httpd restart 3、http若链接不上则查看防火墙 查看:systemctl status firewalld service firewalld status 临时关闭:systemctl stop firewalld 永久关闭:... -
ansible 安装 httpd-2.4.25 启动httpd
2017-04-17 11:29:10一、下载httpd, apr, apr-util 源码包 httpd 源码包 http://httpd.apache.org/download.cgi#apache24 apr和apr-util源码包 http://apr.apache.org/download.cgi 二、编译httpd 1、解压三个软件包,将apr... -
httpd.conf
2012-06-26 20:59:17httpd.conf 配置文件 -
[HTTPD] Linux(Apache)Httpd服务器安装,启动及httpd.conf配置详解
2019-06-12 14:57:38HTTPD简介 Apache HTTP Server(简称Apache或httpd)是Apache软件基金会的一个开放源代码的网页服务器软件,旨在为unix,windows等操作系统中提供开源httpd服务。由于其安全性、高效性及可扩展性,被广泛使用,... -
删除httpd
2014-10-09 16:09:161、[root@localhost etc]# rpm -qa|grep httpd,查看与httpd相关软件包。 httpd-tools-2.2.15-15.el6.centos.i686 httpd-2.2.15-15.el6.centos.i686 2、然后删除httpd: [root@localhost etc]# rpm -e ... -
httpd服务架设简单web站点的部署过程、httpd服务器的基本配置
2020-09-02 23:25:33httpd服务架设简单web站点的部署过程一、web部署过程1、确定网站的名称、以及IP地址2、配置启动httpd服务2.1、配置httpd服务2.2、启动httpd服务3、部署网页文档4、在客户端访问web站点5、查看web站点的访问情况二、... -
busybox httpd用法及httpd.conf说明
2017-03-04 19:50:11没玩过httpd,很纠结怎么用,找了很多资料,甚至httpd.conf都不知道怎么下手,但实际上,如果不需要特殊配置的话,不需要httpd.conf文件也可以,例如使用以下命令: http -p 80 -u 80 -h /www(web所在目录)即可。 ... -
Ubuntu 安装 httpd
2016-11-10 15:10:23Ubuntu 安装 httpd -
Centos phpstudy httpd: Syntax error on line 163 of /phpstudy/server/httpd/conf/httpd.
2018-11-22 10:25:12安装phpstudy 后启动 phpstudy 发现...httpd: Syntax error on line 163 of /phpstudy/server/httpd/conf/httpd.conf: Cannot load modules/libphp5.so into server: /phpstudy/server/httpd/modules/libphp5.so: ... -
安装Httpd服务
2018-09-12 15:44:18系统服务 Httpd www server Apache server http:// .html ...httpd配置:etc/httpd/conf/httpd.conf ServerRoot “/etc/httpd” 用于指定Apache的运行目录 Listen 80 监听端口 Servername w... -
修改httpd端口
2018-10-12 14:30:00修改httpd端口 默认httpd端口为80,现在改成800 修改两个地方: 1.修改配置文件httpd.conf listen 80 把80改成需要的端口 2.修改配置文件httpd-vhosts.conf <VirtualHost *:80> DocumentRoot "E:/... -
httpd.conf 安全配置
2018-12-07 13:33:53ServerRoot “/etc/httpd” //用于指定Apache的运行目录,服务启动之后自动将目录改变为当前目录,在后面使用到的所有相对路径都是相对这个目录下 PidFile run/httpd.pid //设定apache守护进程的pid号。 Timeout..... -
httpd 官方下载
2019-09-30 10:24:201,http://httpd.apache.org/ 2,http://httpd.apache.org/download.cgi 3,http://httpd.apache.org/docs/current/platform/windows.html#down 4,按第三步提示的连接进入,选择你要下载的版本下载(不同链接中的都有... -
httpd虚拟主机
2018-08-14 21:49:31httpd2.2的安装和简介 安装httpd2.4 过程都挺正常的 可以去官网找安装包 http://httpd.apache.org/download.cgi 安装httpd2.4的时候还需要注意一点,需要在官网多下载两个tar包,apr与apr-util这个是httpd运行... -
rhel7 httpd
2018-05-27 16:48:501. yum install httpd -y 安装httpd服务2. vim /etc/httpd/conf/httpd.conf /httpd主配置文件3. <VirtualHost 20.17.17.50>DocumentRoot /home/wwwrootServerName www.xiaolei.com<... -
httpd基础部分,附上httpd2.2部分配置语法
2018-12-10 00:24:06文章目录一、实验环境说明一、httpd概述二、httpd的工作模式三、httpd的事务概述四、CentOS 6简单安装httpd2.2和配置4.1、安装和主要安装文件说明4.2、默认配置文件格式说明以及配置指令格式说明4.3、修改监听的地址... -
Centos 7 搭建Apache(Httpd 2.4) 文件服务器与Httpd文件上传
2019-07-25 18:03:24yum -y install httpd 2、启动、关闭、查看状态 # 启动 /bin/systemctl start httpd.service # 关闭 /bin/systemctl stop httpd.service # 查看状态 systemctl status httpd 3、修改配置 ... -
httpd 密码验证
2020-01-06 23:16:25#1,配置站点: ...[root@c7 conf.d]# grep DocumentRoot /etc/httpd/conf/httpd.conf # DocumentRoot: The directory out of which you will serve your DocumentRoot "/var/www/html" [root@c7 co...
-
P5721 数字直角三角形
-
(新)备战2021软考网络工程师培训学习套餐
-
Edward M. Purcell - Electricity and Magnetism libgen.lc.djvu
-
一周掌握FPGA Verilog HDL语法 day 7
-
DQL语言-常见函数(单行函数、分组函数)
-
Leetcode 291. Word Pattern II
-
S7-200常用问题.rar
-
中外专利信息的检索与利用
-
P1980 计数问题
-
朱有鹏老师嵌入式linux核心课程2期介绍
-
FindHotPhrase.exe
-
MySQL数据库操作.doc
-
【2021】UI自动化测试Selenium3
-
filexfer.dat
-
(新)备战2021软考网络工程师分类强化培训套餐
-
Android异常捕获上传
-
python办公自动化技巧
-
用FPGA如何自己设计CPU和制作计算机.pdf
-
C# chart实时数据显示简单示例工程文件
-
MPC5606S 参考手册.pdf