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

栏目: 服务器 · Apache · 发布时间: 6年前

内容简介: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地址,显示欢迎页

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端口,修改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基础配置详解

[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

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

The CS Detective: An Algorithmic Tale of Crime, Conspiracy, and

The CS Detective: An Algorithmic Tale of Crime, Conspiracy, and

Jeremy Kubica / No Starch Press / 2016-8-15 / USD 13.74

Meet Frank Runtime. Disgraced ex-detective. Hard-boiled private eye. Search expert.When a robbery hits police headquarters, it's up to Frank Runtime and his extensive search skills to catch the culpri......一起来看看 《The CS Detective: An Algorithmic Tale of Crime, Conspiracy, and 》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具