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网络命令与软件管理

    1、描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景和区别 网桥也叫桥接器,是连接两个局域网的一种存储/转发设备,用来连接不同网段。 集线器称为“Hub”,主要功能是对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。 二层交换机工作于OSI模型的第2层(数据链路层),可识别数据包中的MAC地址信息,…

    Linux干货 2016-12-18
  • Linux磁盘与文件系统管理的一些命令

    fdisk fdisk命令用于观察硬盘实体使用情况,也可对硬盘分区。它采用传统的问答式界面,而非类似DOS fdisk的cfdisk互动式操作界面,因此在使用上较为不便,但功能却丝毫不打折扣。 输入m列出可以执行的命令 p:显示磁盘分区表 n:new,新建分区 d:delete,删除分区 t:更改系统类型 l:列出已知分区类型 w:保存并退出 q:不保存退出…

    Linux干货 2017-04-23
  • linux基础之bash特性知识点

    1、 Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。     Linux 一切皆文件。个人理解 在linux下的命令操作都算是对文件操作     那么文件管理命令类命令可以分为下面几类     目录操作: &nbs…

    Linux干货 2016-09-24
  • 第十周:Linux系统启动流程及shell脚本练习

    1、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情) 一张图足以说明一切: 2、为运行于虚拟机上的CentOS 6添加一块新硬件,提供两个主分区;   (1) 为硬盘新建两个主分区;并为其安装grub;   (2) 为硬盘的第一个主分区提供内核和ramdisk文件;为第二个分区提供rootfs;   (3)…

    Linux干货 2016-11-30
  • 一个“蝇量级” C 语言协程库

    协程(coroutine)顾名思义就是“协作的例程”(co-operative routines)。跟具有操作系统概念的线程不一样,协程是在用户空间利用程序语言的语法语义就能实现逻辑上类似多任务的编程技巧。实际上协程的概念比线程还要早,按照 Knuth 的说法“子例程是协程的特例”,一个子例程就是一次子函数调用,那么实际上协程就是类函数一样的程序组件,你可以…

    Linux干货 2016-08-15