内容简介:wed服务基础·httpd基础配置详解
一、 Web Service基础:
service :计算机后台提供的功能或计算机可以提供的某一种功能
Web Service 本质:通过网络调用其它网站的资源
根据来源的不同,分为两种服务:
本地服务:使用同一台机器提供的服务,不需要网络
网络服务:使用另一台机器提供的服务,需要网络
IANA 互联网地址授权机构( Internet Assigned Numbers Authority ):
负责对IP 地址分配规划以及对 TCP/UDP 公共服务的端口定义
BSD Socket
是 IPC (进程间通信)的一种实现,允许位于不同主机上不同进程之间进行通信
Socket API 封装了内核中的 socket 通信相关的系统调用
(1)根据传输层协议分类
SOCK_STREAM: : tcp 套接字
SOCK_DGRAM: : UDP 套接字
SOCK_RAW : raw 裸套接字
(2)根据套接字所使用的地址格式 Socket Domain
AF_INET(Address Family):IPv4的地址
AF_INET6 : ipv6 的地址
AF_UNIX:同一主机上不同进程之间通信使用
TCP/UDP特点
TCP ( Transmission Control Protocol ):传输控制协议
UDP ( User Datagram Protocol ):用户数据报协议
TCP特点:
面向连接的协议
TCP 是可靠的
TCP 会依序 排序 数据包,不管数据包到达的先后顺序
可以通过三次握手实现流量控制
因为有三次握手所以 TCP 传输速度慢
TCP 是重量级的
TCP 要建立连接、保证可靠性和有序性,就会传输更多信息,所以包头大
TCP 协议的头结构 |
|||||
来源端口( 2 字节 ) |
目的端口( 2 字节 ) |
||||
序号( 4 字节 ) |
确认序号( 4 字节 ) |
||||
头长度( 4 位 ) |
保留( 6 位 ) |
||||
URG |
ACK |
PSH |
RST |
SYN |
PIN |
窗口大小( 2 字节 ) |
校验和( 16 位 ) |
||||
紧急指针( 16 位 ) |
选项(可选) |
||||
数据 |
UDP特点:
无连接协议
UDP 是不可靠的
UDP 对数据包的接受是不做管理(无序)
UDP 没有流量控制
相对于 TCP , UDP 传输速度较快
UDP 是轻量级的
UDP 包头小
UDP 协议的头结构 |
|
源端口( 2 字节 ) |
目的端口( 2 字节 ) |
封报长度( 2 字节 ) |
校验和( 2 字节 ) |
数据 |
TCP 和 UDP 主要区别如下 :
TCP :是面向连接的、可靠地、有序的、速度慢的协议;头部比 UDP 大;无界有拥塞控制
基于 TCP 的协议: HTTP/HTTPS Telnet FTP SMTP
UDP 是无连接的、不可靠的、无序的、速度快的协议;有界无拥塞控制
基于 UDP 的协议: DHCP DNS SNMP TFTP BOOTP
TCP协议的特性:
建立连接:三次握手
将数据打包成段:校验和 (CRC-32)
确认、重传及超时
排序:基于逻辑序号实现
流量控制:滑动窗口算法
拥塞控制:慢启动和拥塞避免算法
二、 HTTP协议
http(hyper text transfer protocol)超文本传输协议 应用层协议
html(Hyper Text Mark Language)超文本标记语言
一种用于创建网页的标准标记语言
HTML 语法示例:
<html> <head> <title>TITLE</title> </head> <body> <h1></h1> <p> ...... <a href="http://www.rookie.com/index.html"> ...... </a> </p> <h2> </h2> </body> </html>
HTTP协议:
超文本传输协议是一种通信协议,允许将超文本标记语言文档从 Web 服务器传输到客户端的浏览器。
http协议版本
HTTP0.9 :原型版本,只能传输文本文件
HTTP1.0 :支持 MIME 机制、 cache 支持、 method (请求方法)
HTTP1.1 :增强了缓存功能
HTTP2.0 :大大提升了性能
工作模式:一次http 事务 ===> 请求 <==> 响应
一次请求和一次 HTTP 响应的通信过程就是一次完成的 http 事务
http 请求报文: http request
http 响应报文 : http response
URL ( Uniform Resource Locator )统一资源定位符
是因特网上标准的资源的地址
URL 标准格式:协议类型 :// 服务器地址(必要时需加上端口号) / 路径 / 文件名
Scheme://Server[:Port][/PATH/TO/SOME_RESOURCE]
例如 http://www.sina.com.cn/index.html
Web 资源: web resource
静态资源:原始形式与响应内容一致,无需服务端做出额外处理
.jpg .png .gif .html txt .js .css .mp3 .avi
动态资源:服务端需要通过执行程序做出处理,发送给客户端的事程序的运行结果
.php .jsp
注意:一个网页中展示的资源可能有多个,每个资源都需要单独请求, Web 页面通常是一组资源的集合。
一次完整的 http 请求处理过程:
1. 建立连接 —— 接受一个客户端连接,如果如果不希望与这个客户端建立连接,就直接关闭
2. 接收请求 —— 从网络中读取一条 HTTP 请求报文
3. 处理请求 —— 对请求报文进行解析,并且采取相应的行动
4. 访问资源 —— 发起系统调用,访问报文中指定的资源
5. 构建响应报文并返回 —— 创建带有正确首部的 HTTP 响应报文
6. 记录日志,分析用户行为 —— 将与已完成事务有关的内容记录在一个日志文件中
并发访问响应模型:
单进程 I/O 模型:启动一个进程处理用户请求 ,一次只能处理一个请求,多个请求被串行响应
多进程 I/O 结构:由父进程并行启动多个子进程,每个子进程响应一个请求
复用的 I/O 结构:一个进程响应 n 个请求
多线程模式:一个进程生成 n 个线程,一个线程处理一个请求
事件驱动 (event-driven) :一个进程直接处理 n 个请求
复用的多进程 I/O 结构:启动多个( m )个进程,每个进程生成( n )个线程
响应的请求的数量: m*n
Web Server 请求处理: 分析请求报文的 HTTP 首部
HTTP 协议
http 请求报文首部
http 响应报文首部
请求报文首部的格式
<method><URL><VERSION>
HEADERS (name:value)
<request body> 请求的主体部分
访问资源:获取请求报文中请求的资源
web 服务器,即存放了 web 资源的主机,负责向请求者提供对方请求的静态资源,或动态资源运行生成的结果
Docroot:存放静态资源或者动态资源的本地文件系统路径
web 服务器的资源路径映射方式:
1.Docroot
2.alias
3. 虚拟主机的 Docroot
4. 用户家目录的 Docroot111111111
例: http://www.rookie.com/rookie.jpg
Apache 配置文件中定义了根目录 /var/www/html/
在此目录下存放rookie.jpg
http请求处理中的连接模式:
保持连接(长连接) keep-alive
避免过多的连接保持,可以从时间和数量两个维度对长连接加以限制
非保持连接(短连接)
对于大量并发的场景中,短连接的三次握手四次挥手占据了大量带宽
常用 Http 服务器程序
Httpd ( apache )
Nginx
Lighttpd
应用程序服务器
不仅能处理静态资源,还能处理动态资源
IIS .Net 程序
Tomcat jsp 程序
Httpd 的特性
高度模块化: 核心模块 + 功能模块
DSO dynamic share object 动态装卸载
多路处理模块机制 MPM ( Multipath processing Modules ) )
Prefork:
多进程模型,每个进程响应一个请求
一个主进程:负责生成子进程及回收子进程;负责创建套接字;负责接收请求,并将其派发给某子进程进行处理
n 个子进程:每个子进程处理一个请求
工作模型:会预先生成几个空闲进程,随时等待用于响应用户请求;最大空闲和最小空闲
Worker:
多进程多线程模型,每线程处理一个用户请求
一个主进程:负责生成子进程;负责创建套接字;负责接收请求,并将其派发给某子进程进行处理
多个子进程:每个子进程负责生成多个线程
每个线程:负责响应用户请求
并发响应数量: m*n
m :子进程数量
n :每个子进程所能创建的最大线程数量
Event :
事件驱动模型,多进程模型,每个进程响应多个请求;
一个主进程 :负责生成子进程;负责创建套接字;负责接收请求,并将其派发给某子进程进行处理;
子进程:基于事件驱动机制直接响应多个请求;
httpd-2.2: 仍为测试使用模型;
httpd-2.4 : event 可生产环境中使用
Httpd 程序版本
1.3:停止维护
2.0
2.2 :CentOS 6 默认版本, event 仍为测试使用模型
2.4 :CentOS 7 默认版本, event 可生产环境中使用
Httpd 功能特性
CGI : Common Gateway Interface (公共网关接口)
虚拟主机:基于 IP ,基于端口,基于 FQDN
反向代理
负载均衡
路径别名
丰富的用户认证机制
Basic
Digest
支持扩展的第三方模块
CentOS 6 : httpd-2.2
程序环境:
配置文件:
/etc/httpd/conf/httpd.conf
/etc/httpd/conf.d/*.conf
服务脚本: /etc/rc.d/init.d/httpd
脚本配置文件: /etc/sysconfig/httpd
主程序文件:
/usr/sbin/httpd
/usr/sbin/httpd.event
/usr/sbin/httpd.worker
日志文件:
/var/log/httpd:
access_log :访问日志
error_log :错误日志
站点文档: /var/www/html
模块文件路径: /usr/lib64/httpd/modules
服务控制和启动:
chkconfig httpd on|off
service {start|stop|restart|status|configtest|reload} httpd
CentOS 7 : httpd-2.4
程序环境:
配置文件:
/etc/httpd/conf/httpd.conf
/etc/httpd/conf.d/*.conf
模块相关的配置文件: /etc/httpd/conf.modules.d/*.conf
systemd unit file :
/usr/lib/systemd/system/httpd.service
主程序文件:
/usr/sbin/httpd
httpd-2.4 支持 MPM 的动态切换;
日志文件:
/var/log/httpd:
access_log :访问日志
error_log :错误日志
站点文档: /var/www/html
模块文件路径: /usr/lib64/httpd/modules
服务控制和启动:
systemctl enable|disable httpd.service
systemctl {start|stop|restart|status} httpd.service
Httpd 2.2 配置文件
主配置文件: /etc/httpd/conf/httpd.conf
###Section 1:Global Environment
###Section 2:’Main’ Server configuration (默认)
###Section 3:Virtual Hosts
配置格式
指令行:指令 Directive:value
Directive:不区分字符大小写,但是字符首位应该大写
Value:作为路径时候,是否区分字符大小写,取决于文件系统
常用配置:
1 、修改监听的 IP 和 PORT
Listen [IP-address:]portnumber [protocol]
(1) 省略 IP 表示为 0.0.0.0
(2) Listen 指令可重复出现多次
Listen 80
Listen 8080
(3) 修改监听 socket ,重启服务进程方可生效
(4) 限制其必须通过 ssl 通信时, protocol 需要定义为 https
2、持久连接的概念
Persistent Connection,TCP 连接建立后 , 每个资源获取完成后不会断开连接,继续进行其他资源请求的进行,同时为了避免大量的连接被占据,可以从数量和时间上两个维度进行限制。 Httpd 2.4 支持毫秒级别的限制。
副作用:对并发访问量较大的服务器,长连接机制会使后续某些请求无法得到正常响应
折衷:使用较短的持久连接时长,以及较少的请求数量
三个参数
KeepAlive On|Off
KeepAliveTimeout 15
MaxKeepAliveRequests 100
3、MPM
MPM 的基本概念和模型 :prefork woker event
httpd-2.2 不支持同时编译多个 MPM 模块,所以只能编译选定要使用的那个; CentOS 6 的 rpm 包为此专门提供了三个应用程序文件, httpd(prefork), httpd.worker, httpd.event ,分别用于实现对不同的 MPM 机制的支持 。
默认使用的为 /usr/sbin/httpd ,其为 prefork 的 MPM 模块
查看 httpd 程序的模块列表 :
查看静态编译的模块: httpd -l
查看静态编译及动态编译的模块: httpd -M
更换使用 httpd 程序,以支持其它 MPM 机制
/etc/sysconfig/httpd
HTTPD=/usr/sbin/httpd.{worker,event}
注意:重启服务进程方可生效
MPM 配置:
条件式配置, prefork 和 worker 分别对应不同的配置区段
Prefork 模式
<IfModule prefork.c> StartServers 8 服务器进程启动时候启动多少空闲进程 MinSpareServers 5 最少空闲进程数,如果少于5 ,主控进程再启动几个达到5 MaxSpareServers 20 最大空闲进程数,如果大于20 主控进程对子进程进行回收 ServerLimit 256 所允许启动的最大在线进程数量 MaxClients 256 最大允许启动进程数量响应用户请求(最大并发响应数) MaxRequestsPerChild 4000每个进程最多可以处理多少个请求,超过4000 销毁 </IfModule>
worker模式
<IfModule worker.c> StartServers 4 服务器进程启动时候启动多少空闲进程 MaxClients 300 最大并发响应数300 MinSpareThreads 25 最小空闲线程数25 MaxSpareThreads 75 最大空闲线程数75 ThreadsPerChild 25 每个进程启动25 个线程 MaxRequestsPerChild 0 每个进程可以处理无限个请求 </IfModule>
4 、 DSO
配置指定实现模块加载
LoadModule <mod_name> <mod_path>
模块文件路径可使用相对路径:
相对于 ServerRoot (默认 /etc/httpd )
5 、定义中心主机 Main Server 的文档页面路径
ServerName
语法格式: ServerName [scheme://]fully-qualified-domain-name[:port]
DocumentRoot “”
文档路径映射:
DoucmentRoot 指向的路径为 URL 路径的起始位置
其相当于站点 URL 的根路径
URL PATH 与 FileSystem PATH 不是等同的,而是存在一种映射关系
URL / –> FileSystem /var/www/html/
/images/logo.jpg –> /var/www/html/images/logo.jpg
6 、站点访问控制常见机制
可基于两种机制指明对哪些资源进行何种访问控制
文件系统路径
<Directory “/var/html/www”>
……
</Directory> // 对目录下所有资源实现访问控制
<File “ ”>
….
</File> // 对单个文件实现访问控制
<FileMatch “PATTERN”>
…
</FileMatch> // 使用正则表达式模式匹配进行访问控制
注意:正则表达式要启用正则表达式引擎,效率会降低很多
基于 URL 路径
<Location “ ”>
…
</Locaion>
<LocationMatch “ ”>
</LocationMatch>
7 、定义站点主页面
DirectoryIndex index.html index.html.var
当请求的资源不存在的时候 http 服务器会有两种处理结果
1. 返回 404 或者 403
2.将当前网页目录下内容全部列出来
8 、定义路径别名
定义一个 DocumentRoot “/data/www/”
网站访问 http://www.rookie.com/download/test.html
对应文件存放目录应该是 /data/www/download/test.html
定义一个目录别名
Alias /download/ “/rpms/pub”
此时访问
http://www.rookie.com/download/test.html
对应的文件存放目录应该是 /rpms/pub/test.html
9 、设定默认字符集
AddDefaultCharset UTF-8
三种常见的中文字符集格式 GBK GB2312 GB18030
10、日志设定
日志类型:访问日志和错误日志
错误日志
定义 ErrorLog logs/error_log
/etc/httpd/conf/httpd.conf 指定,相对目录( /etc/httpd/ 下)
错误日志级别
debug, 所有信息,只要产生就全部记录下来
info, 所有的信息数据
notice, 引起注意
warn, 警告
error, 发生错误
crit, 级别很严重
alert, 红色警戒
emerg. 引起恐慌
访问日志:
LogFormat “%h %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User-Agent}i\”” combined
CustomLog logs/access_log combined
LogFormat format strings:
http://httpd.apache.org/docs/2.2/mod/mod_log_config.html#formats
%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 ”的值;即发出请求的应用程序
11 、基于用户的访问控制
常见的用户认证方式:
http 协议自身提供的认证(明文,抓包即可获取密码) –>basic 明文认证
表单认证–>digest 消息摘要认证
认证质询:
www-authenticate
响应码为 401 ,拒绝客户端请求,并说明要求客户端提供账号密码
Authorization
客户端用户填入账号密码后再次发送请求报文,认证通过时,则服务器发送响应的资源
安全域,需要用户认证后方能访问的路径。应该通过名称对其进行标示,以便于告知用户认证的原因
用户账号密码存放位置
虚拟账号:仅用于访问某服务时候用到的认证标识
存储:文件文件、 SQL 数据库、 LDAP 轻量级目录访问协议
Basic 认证配置步骤
(1)定义安全域
<Directory “ ”> Options None AllowOverride None AuthType Basic AuthName “String” AuthUserFile “/PATH/TO/HTTPD_USER_PASSWD_FILE” # AuthGroupFile “/PATH/TO/HTTPD_GROUP_FILE” #基于组来认证 Require user username1 username2... # Require group grpname1 grpname2 ... </Directory >
(2)账号和密码存储(文本文件)
使用命令完成密码文件的创建和用户管理
12 、虚拟主机
通常情况下,一个服务器上只能跑一个网站,或者说一个进程只能跑一个网站。虚拟主机实现了一台机器上或者一个 Web 服务上为多个网站提供服务。
站点标示: Socket
IP 相同,端口不同,易于实现,不实用
IP 不同,端口均为默认端口,不实用,需要多个 IP ,成本很高
IP 相同,端口相同, FQDN 不同,在请求报文首部实现
虚拟主机的实现方式
基于 IP 为每个虚拟主机至少准备一个 IP 地址
基于 port 为每个虚拟主机至少一个独立的 port
基于 FQDN 每个虚拟主机至少一个 FQDN
虚拟主机的配置
注释 DocumentRoot 指令,禁用 Main 主机
配置语法
<VirtualHost IP:PORT> ServerName FQDN DocumentRoot “ “ //站点路径 </VirtualHost>
可用指令
ServerAlias 虚拟主机的别名,可多次使用
Errorlog 专用的错误日志
CustomLog 专用的自定义日志
<Directory “ ”>
…
</Directory> 对资源做访问控制
基于 IP 的虚拟主机示例:
<VirtualHost 172.16.100.6:80> ServerName www.a.com DocumentRoot "/www/a.com/htdocs" </VirtualHost> <VirtualHost 172.16.100.7:80> ServerName www.b.net DocumentRoot "/www/b.net/htdocs" </VirtualHost> <VirtualHost 172.16.100.8:80> ServerName www.c.org DocumentRoot "/www/c.org/htdocs" </VirtualHost>
基于端口的虚拟主机:
<VirtualHost 172.16.100.6:80> ServerName www.a.com DocumentRoot "/www/a.com/htdocs" </VirtualHost> <VirtualHost 172.16.100.6:808> ServerName www.b.net DocumentRoot "/www/b.net/htdocs" </VirtualHost> <VirtualHost 172.16.100.6:8080> ServerName www.c.org DocumentRoot "/www/c.org/htdocs" </VirtualHost>
基于 FQDN 的虚拟主机:
<VirtualHost 172.16.100.6:80> ServerName www.a.com DocumentRoot "/www/a.com/htdocs" </VirtualHost> <VirtualHost 172.16.100.6:80> ServerName www.b.net DocumentRoot "/www/b.net/htdocs" </VirtualHost> <VirtualHost 172.16.100.6:80> ServerName www.c.org DocumentRoot "/www/c.org/htdocs" </VirtualHost>
注意:如果是 httpd-2.2 ,则使用基于 FQDN 的虚拟主机时,需要事先使用如下指令:
NameVirtualHost IP:PORT
13、status 页面
Httpd 状态页面开启 /etc/httpd/conf/httpd.conf 开启 status 模块
启动状态访问页面:
httpd-2.2 <Location /server-status> SetHandler server-status Order allow,deny Allow from 172.16 </Location>
httpd-2.4 <Location /server-status> SetHandler server-status <RequireAll> Require ip 172.16 </RequireAll> </Location>
关于上述理论所做验证如下:
[root@localhost ~]#systemctl start httpd.service 在浏览器输入本机IP地址,显示欢迎页
此欢迎页基于/etc/httpd/conf.d中的welcome.conf 如不需欢迎页,可将welcome.conf改名,并重启服务 [root@localhost ~]#cd /etc/httpd/conf.d/ [root@localhost /etc/httpd/conf.d]#mv welcome.conf{,.bak} [root@localhost /etc/httpd/conf.d]#systemctl restart httpd.service [root@localhost /etc/httpd/conf.d]#cp /etc/issue /var/www/html/
如想访问8080端口,修改Listen即可
[root@localhost /etc/httpd/conf]#ss -tnl
添加端口配置
[root@localhost /etc/httpd/conf]#vim /etc/httpd/conf.d/port.conf
[root@localhost /etc/httpd/conf]#!sys systemctl restart httpd.service [root@localhost /etc/httpd/conf]#!ss
如果不想用此端口,将此文件删除即可 [root@localhost /etc/httpd/conf]#rm -f ../conf.d/port.conf [root@localhost /etc/httpd/conf]#!sys systemctl restart httpd.service [root@localhost /etc/httpd/conf]#!ss (可以看到10000端口已经被删除)
在没有主页情况下会显示默认页 ,添加主页后会显示主页
[root@localhost ~]#systemctl restart httpd.service
[root@localhost ~]#yum install -y telnet [root@localhost ~]#telnet 172.16.250.149 80 Trying 172.16.250.149... Connected to 172.16.250.149. Escape character is '^]'.
[root@localhost ~]#systemctl restart httpd.service [root@localhost ~]#telnet 172.16.250.149 Trying 172.16.250.149... root@localhost ~]#vim /etc/httpd/conf.d/keepalive.conf KeepAlive Off KeepAliveTimeout 30 MaxKeepAliveRequests 100
MPM
httpd2.2 CentOS6
[root@Rookie ~]#service httpd restart 停止 httpd: [确定] 正在启动 httpd:httpd.worker: apr_sockaddr_info_get() failed for Rookie.CN httpd.worker: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName [确定] [root@Rookie ~]#ps aux root 2771 0.0 0.2 186264 4124 ? Ss 02:19 0:00 /usr/sbin/httpd.worker apache 2774 0.0 0.2 530524 5396 ? Sl 02:19 0:00 /usr/sbin/httpd.worker apache 2775 0.0 0.2 530524 5416 ? Sl 02:19 0:00 /usr/sbin/httpd.worker apache 2782 0.0 0.2 530524 5420 ? Sl 02:19 0:00 /usr/sbin/httpd.worker [root@Rookie ~]#vim /etc/sysconfig/httpd
[root@Rookie ~]#service httpd restart 停止 httpd: [确定] 正在启动 httpd:httpd.event: apr_sockaddr_info_get() failed for Rookie.CN httpd.event: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName [确定] [root@Rookie ~]#ps aux root 2927 0.5 0.2 186200 4112 ? Ss 02:23 0:00 /usr/sbin/httpd.event apache 2930 0.0 0.2 530460 5384 ? Sl 02:23 0:00 /usr/sbin/httpd.event apache 2931 0.0 0.2 530460 5404 ? Sl 02:23 0:00 /usr/sbin/httpd.event apache 2932 0.0 0.2 530460 5388 ? Sl 02:23 0:00 /usr/sbin/httpd.event
http2.4 CentOS7 [root@localhost ~]#vim /etc/httpd/conf.modules.d/00-mpm.conf
[root@localhost ~]#systemctl restart httpd.service [root@localhost ~]#ps aux
DOS CentOS7
定义‘Main’ server的文档页面路径
更改服务器名称 CentOS6 [root@Rookie ~]#vim /etc/hosts
[root@Rookie ~]#service httpd restart
[root@Rookie ~]#service httpd restart
DocumentRoot
[root@localhost ~]#mkdir /data/web/www/ -pv
[root@localhost ~]#vim /etc/httpd/conf/httpd.conf
[root@localhost ~]#systemctl restart httpd.service
站点访问控制(准许) httpd2.4 CentOS7
[root@localhost ~]#vim /etc/httpd/conf/httpd.conf
[root@localhost ~]#systemctl restart httpd.service
httpd2.2 CentOS6 [root@Rookie ~]#mkdir /data/html -pv
[root@Rookie ~]#vim /etc/httpd/conf/httpd.conf
[root@Rookie ~]#service httpd restart
order和allow、deny 2.2 CentOS6
只准许 172.16.0.125网段访问
开放 172.16网段,屏蔽172.16.0.125
[root@Rookie ~]#service httpd reload 重新载入 httpd:
2.4 CentOS7 [root@localhost ~]#vim /etc/httpd/conf/httpd.conf
[root@localhost ~]#systemctl restart httpd.service
[root@localhost /etc/httpd/conf]#mkdir /data/web/www/images [root@localhost /etc/httpd/conf]#find /usr/share/ -iname "*.jpg" -exec cp {} /data/web/www/images/ \; 将/usr/share/下所有找到的图片放到/data/web/www/images/下 [root@localhost /etc/httpd/conf]#vim httpd.conf
[root@localhost /etc/httpd/conf]#systemctl restart httpd.service
[root@localhost /etc/httpd/conf]#systemctl restart httpd.service
[root@localhost /etc/httpd/conf]#vim httpd.conf
[root@localhost /etc/httpd/conf]#systemctl restart httpd.service
定义站点主页面
[root@localhost ~]#systemctl restart httpd.service
定义路径别名 httpd2.4
[root@localhost ~]#vim /etc/httpd/conf/httpd.conf
[root@localhost ~]#systemctl restart httpd.service
将Alias注释掉
日志设定
[root@localhost ~]#tail /var/log/httpd/error_log
访问日志
[root@localhost /etc/httpd/conf]#vim httpd.conf
基于用户的访问控制
[root@localhost /etc/httpd/conf]#htpasswd -c /tmp/test.users zhang New password: Re-type new password: Adding password for user zhang [root@localhost /etc/httpd/conf]#cat /tmp/test.users zhang:$apr1$MqD2EyV0$tFQ4IUw.V.e3EnGPolI5E/ [root@localhost /etc/httpd/conf]#htpasswd /tmp/test.users wang New password: Re-type new password: Adding password for user wang [root@localhost /etc/httpd/conf]#cat /tmp/test.users zhang:$apr1$MqD2EyV0$tFQ4IUw.V.e3EnGPolI5E/ wang:$apr1$d1AFoDa6$U8AwV4qan80HbN5hsdpKd0
只准许 wang zhang 两个用户登录
[root@localhost /etc/httpd/conf]#!sys
准许所有合法用户登录
[root@localhost /etc/httpd/conf]#!sys systemctl restart httpd.service
创建用户账号和组账号文件,用户名为之前账号文件所包含的账号
基于 IP的虚拟主机示例:
172.16.253.193 ilinux
172.16.253.199 iunix
[root@localhost ~]#systemctl httpd restart
基于端口的虚拟主机:
基于 FQDN的虚拟主机:
注意:如果是 httpd-2.2,则使用基于FQDN的虚拟主机时,
需要事先使用如下指令: NameVirtualHost IP:PORT
status页面
[root@localhost ~]#!sys systemctl restart httpd.service
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Software Paradigms
Stephen H. Kaisler / Wiley-Interscience / 2005-03-17 / USD 93.95
Software Paradigms provides the first complete compilation of software paradigms commonly used to develop large software applications, with coverage ranging from discrete problems to full-scale applic......一起来看看 《Software Paradigms》 这本书的介绍吧!