web服务_apache配置(2)v1.0


httpd-2.2的基础配置

/etc/httpd:ServerRoot

conf/httpd.conf、conf.d/*.conf:配置文件

logs:日志文件

modules:模块文件

主配置文件:/etc/httpd/conf/httpd.conf

directive value

directive:不区分字符大小写;例如:ServerRoot;

value:除了文件路径这外,大多数不区分字符大小写;

### Section 1: Global Environment                     全局配置段

### Section 2: ‘Main‘ server configuration              主服务配置选项

### Section 3: Virtual Hosts                                   虚拟主机配置段

一般而言只用一个主服务配置或多个虚拟主机 (互斥选项 主服务和虚拟服务不能同时生效)

修改后生效:

Reload                     service httpd reload (CentOS 6)

restart:通常仅修改了监听的地址和端口;

***********************************

]# httpd -t               语法检查

***********************************

1、修改监听的地址端口;

Listen [IP:]PORT

(1) 可定义多次;

Listen 80

Listen 8080

(2) 省略IP,表示0.0.0.0; 本机配置的所有地址

2、持久连接

persistent connection:tcp连接建立后,资源获取完成不会断开连接,而是继续等待请求其它资源;

如何断开?

数量限制

时间限制

相关指令:

KeepAlive On|Off              是否开启持久链接功能 默认off

MaxKeepAliveRequests 100              一次链接最多能请求多少个资源

KeepAliveTimeout 15                     一次联建最多存活多少秒

请求测试:

]$ telnet SERVER_IP PORT              root无法用terlnet

GET /test1.html HTTP/1.1            请求资源方法 资源url  及指定协议版本 http

Host: SERVER_IP                            主机ip地址

相应报文首部:

HTTP/1.1 200 OK                            相应码 200

Date: Tue, 14 Jun 2016 06:04:36 GMT       时间

Server: Apache/2.2.15 (CentOS)              服务器端程序

Last-Modified: Tue, 14 Jun 2016 03:34:43 GMT 标记请求资源最后修改的时间

ETag: "60102-10-53534af955806"

Accept-Ranges: bytes

Content-Length: 16              响应报文长度

Connection: close

Content-Type: text/html; charset=UTF-8              资源类型和字符集

test1.html page                     (相应body)

Connection closed by foreign host.       (非持久链接 相应后既关闭连接)

3、MPM 定义httpd进程基于哪种某型相应用户请求

multipath processing module:多路处理模块;

httpd-2.2的MPM机制不支持DSO机制,event为测试;

httpd:prefork

httpd.worker: worker

httpd.event: event

修改启动的模块:       restart生效

/etc/sysconfig/httpd

HTTPD=/usr/sbin/httpd|httpd.worker|httpd.event

查看httpd程序的模块列表:

查看静态编译的模块:

httpd -l

查看编译的所有模块:

httpd -M

*****************************************

当使用profork模型时,主进程会预先生成几个空闲的子进程等待相应用户请求

MPM配置:

prefork的配置

<IfModule prefork.c>

StartServers       8       预先生成的子进程数量

MinSpareServers    5       最小空闲子进程

MaxSpareServers   20       最大空闲子进程

ServerLimit      256       相应用户请求的最大服务器进程数量

MaxClients       256       最大客户端数量

MaxRequestsPerChild  4000

</IfModule>

worker的配置: 三级结构

<IfModule worker.c>

StartServers         4              启动子进程数量

MaxClients         300       最大并发连接数(线程)

MinSpareThreads     25       最少空闲线程数

MaxSpareThreads     75       最大空闲线程数

ThreadsPerChild     25  每一个子进程最大启动多少个线程

MaxRequestsPerChild  0每一个字进程最多能接受多少个请求(基于线程模型无法控制)

</IfModule>                                          80, 500ms, 256

512*86400/80=55W PV       每个相应在500ms内完成 最大并发为256 一秒钟能相应512个 平均每天86400 除以每个页面的资源数量 80 得每天能相应的页面数量 (不代表高峰数据且不考虑带宽 实际意义不大)

Page View

UV: User View 有效用户

*****************************************

4、DSO 动态模块装载

LoadModule指令

LoadModule  Mod_Name  modules/Module_File.so

相对路径,是相对于ServerRoot指令所定义的路径而言;

5、       ‘Main‘ Server 主web服务配置段

通常来讲,这两个配置段没有的指令会从主配置段继承配置,主服务器配置和虚拟服务器配置不可同时生效:

(1)‘Main‘Server配置段(在单台服务器上存在单个站点提供服务)

定义服务器和主机必不可少的:

ServerName FQDN:PORT   主服务器在主配置段里定义也可以(试验中在本机定义后,还要编辑/etc/hosts添加ip地址和FQDN对应关系才能在本机浏览器打开)

DocumentRoot (路径映射)

6.站点资源访问控制 (可以在主配置文件或虚拟主机中生效)

(1)基于文件系统 (2.2默认都可以访问 2.4默认不能访问)

<Directory"/PATH/TO/SOME_DIR"> (针对文件夹做操作,配置内容只对该文件夹有效)

...

</Directory>

<File""> ...</File>              (针对文件,只对容器内生效)

<FileMatch "PATTERN"> ...</FileMatch>              (针对被正则匹配的文件)

(2)基于url路径

<Location "/PATH/TO/SOME_URL">...</Location>(对url访问控制)

<LocationMatch "PATTERN">...</LocationMatch> (url的正则表达式)

目录中的常用选项:

[1] Options:用于定义资源的展示方式;后跟以空白字符分隔的“选项”列表;

Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews None All

Indexes:允许索引;

FollowSymLinks:允许跟踪符号链接; (允许指定的文件或路径是以软连接的形式存在,风险很大)

SymLinksifOwnerMatch          (原理同上,但文件或目录属主(运行httpd的用户)必须是符合要求,相比followsyslinks风险较小)

ExecCGI:允许执行CGI脚本;      (早期CGI可以有超级superID权限,除非网页用到此功能,否则尽量不开启)

Includes:包含            略

如果一个站点没有主页又没有允许Indexes则显示403,但如果有其他url还是可以访问的.

[2] AllowOverride [none|all|Fileinfo|authconfig|limit](用来控制哪些指令可以放在.htaccess中)

httpd允许在网页文档的各目录下使用.htaccess文件实现单目录资源的访问控制;表示哪此指令可以存放于.htaccess文件中;

比如/data/web/目录下有.htaccess则编辑此文件则可实现访问控制,如果使用服务器性能急剧下降(必须搜索到此文件.当前目录没有则搜索上级目录)

[3]order和llow/deny from (控制谁能在当前服务器获得资源)

基于IP地址的访问控制;

order 用于定义allow和deny的生效次序;

allow from all/IP/NETWORK/FQDN

deny from  all/IP/NETWORK/FQDN

来源地址格式:

IP

NetAddr:格式;

172.16;

172.16.0.0;

172.16.0.0/16;

172.16.0.0/255.255.0.0;

FQDN

DAMAIN

order * , *(谁在后谁是默认法则)

order deny,allow;deny是默认法则,没有说明allow的都是不允许的(安全)

order allow, deny (如果没有deny的,都是allow(默认))-->>来源请求遵循最佳匹配法则机制;


1

2

3


        oeder allow,deny          #deny为默认法则

        deny from 172.16.100.67       #不允许这个地址

        allow from 172.16         #允许这个网段

deny和allow的次序是没有区别的(非order第一行),最优匹配法则:当一个主机访问时,看哪一条能最小匹配,哪一个就优先生效(172.16.100.67最小匹配deny,所以deny生效)


1

2

3

4


        oeder allow,deny          #deny为默认法则

        deny from 172.16.100.67      #不允许这个地址

        allow from 172.16         #允许这个网段

        deny from all                      #172.16.1.1最小匹配allow from 172.16s所以可以访问

7.定义站点主页面

DirectoryIndex index.html index.html.var

可以多个值 自作而有搜索,如果没有查看是否options indexes返回索引列表,如果没有则返回403

8.定义路径别名:

Alias  /URL/  "/PATH/TO/SOME_DIR/" (URL只是个定义.并不一定非要是目录)

例:  DocumentRoot "/data/web"

当访问http://www.zxtest.com/images/logo.jpg  <-- /data/web/images/logo.jpg

alias  /images “/webdata/pictures/”

http://www.zxtest.com/images/logo.jpg <-- /webdata/pictures/logo.jpg

9、日志设定

错误日志:

ErrorLog logs/error_log  相对于/etc/logs (文件为超级连接,真正位置看超级连接的位置)

LogLevel warn  日志等级

访问日志:

LogFormat:定义日志信息格式;

CustomLog:指明日志文件路径及日志格式;

格式:

%h       Remote host       远程主机

%l       Remote logname (from identd, if supplied). 远程登录名

%u       Remote user (from auth; may be bogus if return status (%s) is 401) 用户名

%t       Time the request was received (standard english format) 收到请求的时间

%r       First line of request 请求报文的首行

%s       Status. For requests that got internally redirected, this is the status of the *original* request --- %>s for the last.                     相应状态码?

%b       Size of response in bytes, excluding HTTP headers. 主体部分大小(不包含首部)

%{Foobar}i       The contents of Foobar: header line(s) in the request sent to the server.

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined(日志名称)

特殊颜色为取其某个报文首部的指定字段的值的

时间: 2024-12-11 15:48:42

web服务_apache配置(2)v1.0的相关文章

web服务_apache配置(3)v1.0

11.基于用户的访问控制 认证质询: WWW-Authenticate:响应码为401,拒绝客户端请求,并说明要求客户端提供账号和密码: 认证: Authorization:客户端用户填入账号和密码后再次发送请求报文:认证通过时,则服务器发送响应的资源: 认证方式有两种: basic:明文 digest:消息摘要认证 安全域:需要用户认证后方能访问的路径:应该通过名称对其进行标识,以便于告知用户认证的原因: 用户的账号和密码存放于何处? 虚拟账号:仅用于访问某服务时用到的认证标识 存储:(ttt

web服务安装配置

本文主要是以 CentOS 6系列为操作系统,来安装配置web服务,并实现虚拟用户,https,和基本的用户认证等相关内容. 写在前面: 操作系统: CentOS 6.5 服务器的IP: 172.16.10.9 httpd的版本:httpd-2.2.15 系列 SElINUX状态:disabled 下面开始安装配置旅程: 一.web的安装配置 1.安装:yum install httpd  mod_ssl -y mod_ssl 是实现 https 协议时所依赖的包 2.配置文件的相关说明: 配置

Web服务Https配置和代码访问方法

一.Https方式及证书 Web服务使用Https方式需要SSL证书,证书可从两个渠道获取:公开可信认证机构申请或自己生成. 公开可信认证机构优势在于校验方便,但是会有租金. 自己生成工具成本低,但用浏览器访问时会提示风险,需要用户手动确认可信. Https还分单向认证和双向认证,单向认证只需要服务器端部署1份证书,双向认证要Client和Server端都有证书,而且还会增加Client和Server握手步骤. 单向认证已经能够满足传输数据的加密需求,所以登录服务器与客户端通讯采用自己生成SSL

Nginx作为WEB服务相关配置(性能优化,网络连接,访问控制,虚拟主机,https等等)

编译安装nginx yum -y install pcre-devel groupadd -r nginx useradd -g nginx -r nginx tar xf nginx-1.6.2.tar.gz cd nginx-1.6.2 ./configure --prefix=/usr/local/nginx --conf-path=/etc/nginx/nginx.conf--user=nginx --group=nginx --error-log-path=/var/log/nginx

linux监控系统_Zabbix_agent_配置(4)V1.0

本次实验以Centos 7.2:    Ip= 172.16.79.74******************************************************************************************agent可用端口:    agent:    IPMI:    SNMP:强烈不推荐使用!    JMX:**********************************************************************

Web安全开发规范手册V1.0

一.背景 团队最近频繁遭受网络攻击,引起了部门技术负责人的重视,笔者在团队中相对来说更懂安全,因此花了点时间编辑了一份安全开发自检清单,觉得应该也有不少读者有需要,所以将其分享出来. 二.自检清单 检查类型 说明 检查项 输入验证 概述 任何来自客户端的数据,如URL和参数.HTTP头部. Javascript戓其他嵌入代码提交的信息,都属于不可信数据.在应用外部边界或内部每个组件或功能边界,都将其当做潜在的恶意输入来校验 白名单 不可信数据可以设定白名单校验的,应接受所有和白名单匹配的数据,并

web服务_apache基础

http: http协议: http/0.9:原型版本: http/1.0:cache, MIME(multipupose internet Mail Extensions) method:GET.POST.HEAD.PUT.DELETE.TRACE.OPTIONS.... http/1.1:缓存功能大大增强 speedy:spdy http/2.0 80/tcp https协议: 443/tcp IANA: 0-1023:众所周知的,永久地分配给固定的应用使用:特权端口(仅root可用): 1

Lvs+keepalived安装配置(v1.0)

测试环境 系统:centos6.5_x86_64 主DR IP:192.168.1.216 备DR IP:192.168.1.218 VIP:192.168.1.253/254 real_server1:192.168.1.220 real_server2:192.168.1.219 一.安装ipvsadm 1.1 安装依赖包 yum -y install  libnl-devel  libnl popt popt-static 1.2 下载并安装ipvsadm wget http://www.

高性能Web服务之haproxy应用详解及实现论坛的动静分离机制

HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理.HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接.并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上. 下面通过案例架构详解HAproxy应用,架构图如下所示: 以上架构实现过程如下: (1).在node1,node