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_RAWraw裸套接字

(2)根据套接字所使用的地址格式  Socket Domain

AF_INET(Address Family):IPv4的地址

AF_INET6ipv6的地址

AF_UNIX:同一主机上不同进程之间通信使用

TCP/UDP特点

TCPTransmission Control Protocol):传输控制协议

UDPUser 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没有流量控制

相对于TCPUDP传输速度较快

UDP是轻量级的

UDP包头小

UDP协议的头结构

源端口(2字节

目的端口(2字节

封报长度(2字节

校验和(2字节

数据

 

TCPUDP主要区别如下:

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

 

URLUniform Resource Locator)统一资源定位符

是因特网上标准的资源的地址;用于描述服务器某特定资源的位置

URL标准格式:协议类型://服务器地址(必要时需加上端口号)/路径/文件名

  Scheme(协议)://Server(服务器)[:Port](端口)[/PATH/TO/SOME_RESOURCE](路径、文件)

  例如 http://www.sina.com.cn/index.html 

Web资源:web resource

wed服务基础·httpd基础配置详解

静态资源:原始形式与响应内容一致,无需服务端做出额外处理

.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

wed服务基础·httpd基础配置详解

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.4event可生产环境中使用

 

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 6httpd-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 7httpd-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、修改监听的IPPORT

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 6rpm包为此专门提供了三个应用程序文件,httpd(prefork), httpd.worker, httpd.event,分别用于实现对不同的MPM机制的支持

默认使用的为/usr/sbin/httpd,其为preforkMPM模块

查看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>

4DSO

配置指定实现模块加载

LoadModule  <mod_name>  <mod_path>

模块文件路径可使用相对路径:

相对于ServerRoot(默认/etc/httpd

 

5、定义中心主机Main Server的文档页面路径

ServerName

语法格式: ServerName [scheme://]fully-qualified-domain-name[:port]

DocumentRoot  “”

文档路径映射:

DoucmentRoot指向的路径为URL路径的起始位置

其相当于站点URL的根路径

URL PATHFileSystem 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地址

%lRemote User, 通常为一个减号(“”)

%uRemote user (from auth; may be bogus if return status (%s) is 401);非为登录访问时,其为一个减号

%t:服务器收到请求时的时间

%rFirst 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地址,显示欢迎页

wed服务基础·httpd基础配置详解 

此欢迎页基于/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/

wed服务基础·httpd基础配置详解 

 

如想访问8080端口,修改/etc/httpd/conf/http.conf文件中Listen即可

wed服务基础·httpd基础配置详解 

[root@localhost /etc/httpd/conf]#ss -tnl

wed服务基础·httpd基础配置详解 

添加端口配置

[root@localhost /etc/httpd/conf]#vim /etc/httpd/conf.d/port.conf

wed服务基础·httpd基础配置详解 

[root@localhost /etc/httpd/conf]#!sys
systemctl restart httpd.service
[root@localhost /etc/httpd/conf]#!ss

wed服务基础·httpd基础配置详解 

如果不想用此端口,将此文件删除即可
[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端口已经被删除)

wed服务基础·httpd基础配置详解 

在没有主页情况下会显示默认页,添加主页后会显示主页

wed服务基础·httpd基础配置详解 

[root@localhost ~]#systemctl restart httpd.service

wed服务基础·httpd基础配置详解 

[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 '^]'.

wed服务基础·httpd基础配置详解 

[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

wed服务基础·httpd基础配置详解 

[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

wed服务基础·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

wed服务基础·httpd基础配置详解 

[root@localhost ~]#systemctl restart httpd.service
[root@localhost ~]#ps aux

 

DOS CentOS7

wed服务基础·httpd基础配置详解 

 

定义‘Main’ server的文档页面路径

更改服务器名称      CentOS6
[root@Rookie ~]#vim /etc/hosts

wed服务基础·httpd基础配置详解 

[root@Rookie ~]#service httpd restart

wed服务基础·httpd基础配置详解 

[root@Rookie ~]#service httpd restart

 

DocumentRoot

[root@localhost ~]#mkdir /data/web/www/ -pv

wed服务基础·httpd基础配置详解 

[root@localhost ~]#vim /etc/httpd/conf/httpd.conf

wed服务基础·httpd基础配置详解 

[root@localhost ~]#systemctl restart httpd.service

wed服务基础·httpd基础配置详解 

 

站点访问控制(准许)   httpd2.4   CentOS7

[root@localhost ~]#vim /etc/httpd/conf/httpd.conf

wed服务基础·httpd基础配置详解 

[root@localhost ~]#systemctl restart httpd.service

wed服务基础·httpd基础配置详解 

 

httpd2.2  CentOS6
[root@Rookie ~]#mkdir /data/html -pv

wed服务基础·httpd基础配置详解 

[root@Rookie ~]#vim /etc/httpd/conf/httpd.conf

wed服务基础·httpd基础配置详解 

wed服务基础·httpd基础配置详解 

[root@Rookie ~]#service httpd restart

wed服务基础·httpd基础配置详解 

order和allow、deny 2.2  CentOS6

只准许172.16.0.125网段访问

wed服务基础·httpd基础配置详解 

开放172.16网段,屏蔽172.16.0.125

wed服务基础·httpd基础配置详解 

[root@Rookie ~]#service httpd reload
重新载入 httpd:

2.4  CentOS7
[root@localhost ~]#vim /etc/httpd/conf/httpd.conf

wed服务基础·httpd基础配置详解 

[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

wed服务基础·httpd基础配置详解 

[root@localhost /etc/httpd/conf]#systemctl restart httpd.service

wed服务基础·httpd基础配置详解 

wed服务基础·httpd基础配置详解 

[root@localhost /etc/httpd/conf]#systemctl restart httpd.service

wed服务基础·httpd基础配置详解 

wed服务基础·httpd基础配置详解 

[root@localhost /etc/httpd/conf]#vim httpd.conf

wed服务基础·httpd基础配置详解 

[root@localhost /etc/httpd/conf]#systemctl restart httpd.service

 

定义站点主页面

wed服务基础·httpd基础配置详解 

[root@localhost ~]#systemctl restart httpd.service

wed服务基础·httpd基础配置详解 

 

定义路径别名    httpd2.4

[root@localhost ~]#vim /etc/httpd/conf/httpd.conf

wed服务基础·httpd基础配置详解 

wed服务基础·httpd基础配置详解 

wed服务基础·httpd基础配置详解 

[root@localhost ~]#systemctl restart httpd.service

wed服务基础·httpd基础配置详解 

将Alias注释掉

wed服务基础·httpd基础配置详解 

wed服务基础·httpd基础配置详解 

 

日志设定

[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

wed服务基础·httpd基础配置详解 

只准许wang zhang 两个用户登录

wed服务基础·httpd基础配置详解 

[root@localhost /etc/httpd/conf]#!sys

wed服务基础·httpd基础配置详解 

准许所有合法用户登录

wed服务基础·httpd基础配置详解 

[root@localhost /etc/httpd/conf]#!sys
systemctl restart httpd.service

wed服务基础·httpd基础配置详解 

创建用户账号和组账号文件,用户名为之前账号文件所包含的账号

wed服务基础·httpd基础配置详解 

wed服务基础·httpd基础配置详解 

wed服务基础·httpd基础配置详解 

 

基于IP的虚拟主机示例:

172.16.253.193 ilinux

172.16.253.199 iunix

wed服务基础·httpd基础配置详解 

wed服务基础·httpd基础配置详解 

wed服务基础·httpd基础配置详解 

wed服务基础·httpd基础配置详解 

wed服务基础·httpd基础配置详解 

wed服务基础·httpd基础配置详解 

wed服务基础·httpd基础配置详解 

wed服务基础·httpd基础配置详解 

wed服务基础·httpd基础配置详解 

[root@localhost ~]#systemctl httpd restart

wed服务基础·httpd基础配置详解 

wed服务基础·httpd基础配置详解 

wed服务基础·httpd基础配置详解 

 

基于端口的虚拟主机:

wed服务基础·httpd基础配置详解 

wed服务基础·httpd基础配置详解 

wed服务基础·httpd基础配置详解 

wed服务基础·httpd基础配置详解 

基于FQDN的虚拟主机:

wed服务基础·httpd基础配置详解 

wed服务基础·httpd基础配置详解 

wed服务基础·httpd基础配置详解 

注意:如果是httpd-2.2,则使用基于FQDN的虚拟主机时,

需要事先使用如下指令:NameVirtualHost IP:PORT

 

status页面

wed服务基础·httpd基础配置详解 

[root@localhost ~]#!sys
systemctl restart httpd.service

 

原创文章,作者:Linux.rookie,如若转载,请注明出处:http://www.178linux.com/77806

(1)
Linux.rookieLinux.rookie
上一篇 2017-06-09
下一篇 2017-06-10

相关推荐

  • Linux Sysadmin–part4

    一、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情) A.POST加电自检 主板在接通电源后,系统首先由POST程序来对内部各个设备进行检查,自检中如发现有错误,将按两种情况处理:对于严重故障(致命性故障)则停机,此时由于各种初始化操作还没完成,不能给出任何提示或信号;对于非严重故障则给出提示或声音报警信号,等待用户处理。 B.BIOS…

    2017-10-10
  • 软件包管理​

    1、 包管理器 包之间:可能存在依赖关系,甚至循环依赖    解决依赖包管理工具:yum(rpm包管理器的前端工具) 2、 库文件 查看二进制程序所依赖的库文件: #ldd /PATH/TO/BINARY_FILE 管理及查看本机装载的库文件: #ldconfig(安装程序一般都带有一些需要的库文件,要把相应的库文件配置于/etc/ld.…

    Linux干货 2016-09-01
  • 第一周作业

    – 描述计算机的组成及其功能。 – 按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。 – 描述Linux的哲学思想,并按照自己的理解对其进行解释性描述。 – 说明Linux系统上命令的使用格式;详细介绍ifconfig、echo、tty、startx、export、pwd、history、shu…

    Linux干货 2016-12-04
  • 马哥教育网络班21期+第七周博客作业

    1、创建一个10G分区,并格式为ext4文件系统;    (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;    (2) 挂载至datamydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳 [root@ns1 ~]# m…

    Linux干货 2016-08-24
  • zabbix low-level discover 监控端口

    zabbix通过调用jason格式的输出,实现数据的收集 获取端口的shell脚本   #!/bin/bash port_array=(`netstat -tnl|egrep -i "$1"|awk {'print $4'}|awk -F':' '{if ($NF~/^[0-9]…

    Linux干货 2016-06-09
  • N25-第八周

    1、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态; 在线的主机使用绿色显示; 不在线的主使用红色显示; #!/bin/bash ipnet=172.16.250. trap ‘trap_action’ INT trap_action() { break return 1 } for ((i=1…

    Linux干货 2017-05-27