HTTPD经常使用配置

                                        HTTPD经常使用配置
html

---------------------------------------------------------------------------------------------------------------------------------------------nginx

1、http服务器apache

一、http服务器程序vim

httpdapachecentos

nginx浏览器

lighttpd缓存

二、20世纪90年代初,美国国家超级计算机应用中心NCSA开发服务器

1995年开源社区发布apache(a patchy server)网络

ASF: apache software foundation多线程

FSF:Free Software Foundation

三、特性:

高度模块化:core + modules

DSO: Dynamic Shared Object 动态加/卸载

MPM:multi-processing module多路处理模块

2、MPM工做模式

一、prefork:多进程I/O模型,每一个进程响应一个请求,默认模型,并发链接数达到10000,性能将明显降低

一个主进程:生成和回收n个子进程,建立套接字,不响应请求

多个子进程:工做work进程,每一个子进程处理一个请求;系统初始时,预先生成多个空闲进程,等待请求,最大不超过1024个

二、worker:复用的多进程I/O模型,多进程多线程,IIS使用此模型,若是一个子进程的某个线程有问题,那么该子进程的其它线程会被问题线程影响

一个主进程:生成m个子进程,每一个子进程负责生个n个线程,每一个线程响应一个请求,并发响应请求:m*n

三、event:事件驱动模型(worker模型的变种)

一个主进程:生成m个子进程,每一个进程直接响应n个请求,并发响应请求:m*n,有专门的线程来管理这些keep-alive类型的线程,当有真实请求时,将请求传递给服务线程,执行完毕后,又容许释放。这样加强了高并发场景下的请求处理能力

四、模型

prefork

image.png

worker,多线程

image.png

event

image.png

 

3、httpd功能

一、虚拟主机:一个物理服务器搭建多个网站

IP、Port、FQDN

二、CGI:Common Gateway Interface,通用网关接口

三、反向代理:调度器,离服务器更近,根据实际状况把用户请求调度到真正提供后台服务的服务器

附:不支持正向代理。正向代理:帮助客户端访问远程主机,离客户机更近,主机想要访问某视频网站观看视频,区域内服务器收到用户机请求后去目标网站访问视频,并存储到缓存内,将缓存内的视频返回给用户,若是有其余用户也查看一样的网站视频,访问到的数据也将是区域内服务器的缓存,这样不只节约了带宽,同时也提升了用户网络传输速度

四、负载均衡

五、路径别名

六、丰富的用户认证机制

basic

digest

七、支持第三方模块

4、httpd配置文件

一、配置文件:

/etc/httpd/conf/httpd.conf

/etc/httpd/conf.d/*.conf

二、检查配置语法:

httpd -t

service httpdconfigtest

三、搜索ServerName

image.png

该选项只是让apache知道本身的域名叫这个,让其余远程主机知道该域名仍是须要DNS,此处搞个小

四、主程序文件:

/usr/sbin/httpd

/usr/sbin/httpd.worker

/usr/sbin/httpd.event

五、主进程文件:

/etc/httpd/run/httpd.pid

六、日志文件目录:

/var/log/httpd

access_log: 访问日志

error_log:错误日志

七、帮助文档包:

httpd-manual,yum install httpd-manual后加载服务,浏览器地址输入192.168.239.60/manual出现帮助说明

5、httpd常见配置

一、centos6工做模式:

image.png

此项修改在/etc/sysconfig/httpd

image.png

centos7工做模式/etc/sysconfig/httpd已无这些内容,修改某模式选项参数时直接在自建的/etc/httpd/conf.d/*.conf里写入便可,好比说

image.png

二、配置格式:directive value

directive: 不区分字符大小写

value: 为路径时,是否区分大小写,取决于文件系统

三、隐藏http报文头部显示的服务器版本号:

image.png

所以新建/etc/httpd/conf.d/test.conf,写入ServerTokens Prod,保存退出后从新加载生效

image.png

或者curl命令,也能够查看

image.png

四、实验:

修改监听端口为8080

image.png

修改服务器名

image.png

修改/etc/hosts文件,添加

image.png

重启后httpd监听了8080端口,此时本身主机测试

注:若是在/etc/httpd/conf.d/*.conf添加listen 8080,而不修改主配置文件,此时服务重启httpd将监听80端口和8080端口;

若是在主配置文件监听的是内部ip,listen 192.168.1.1:80,意味着ip绑定端口,只能ping 通192.168.1.1的内部ip登陆,外部其它ip没法经过80端口登陆

image.png

此实验仅适用于本主机,若是修改了其余主机hosts文件,也能够经过apache域名解析为ip

五、工做模式更改

/etc/httpd/conf.modules.d/00-mpm.conf

image.png

六、增删模块

httpd -M检查动态加载的模块

httpd -l 查看静态加载的模块,没法删除,必有

模块目录:/etc/httpd/conf.modules.d/00-base.conf,修改后须要重启httpd服务

image.png

七、更改主页面存放路径

apache默认路径:/var/www/html/index.html

修改:

image.png

这是主文件配置,通常不建议修改主文件配置,建议在/etc/httpd/conf.d/目录下本身新建个*.conf文件,在里面写入内容进行修改。修改前能够输入grev -v "^[ ]*#" /etc/httpd/conf/httpd.conf,将过滤掉带注释行的说明内容,像这样

image.png

若是再修改哪一项将该项拷贝出,复制到/etc/httpd/conf.d/*.conf进行修改重启便可

综上所述,找到配置文件中的/var/www/html,复制到自建的配置文件

image.pngimage.pngimage.pngimage.png

八、定义默认查找的html文件

配置文件中显示

image.png

自建目录下添加

image.png

九、站点访问控制

访问机制控制有两种:客户端来源地址、用户帐号

2.4配置

image.png

十、主页面配置

/etc/httpd/conf.d/welcome.html:这是httpd找不到主页时显示的Test123页面,将它更名后,页面为

image.png

修改配置使主页面不存在时能够查看网站下的目录索引:(设置权限的目录只出如今容许的主机上

image.png

通常网站不开启此选项,不过相似阿里云的epel源网站会开启这选项

输入此项,软连接也一并显示

image.png

十一、AllowOverride

与访问控制相关的哪些指令能够放在指定目录下的.htaccess文件中,覆盖以前的配置指令

用法:

image.png

十二、日志设定

直接访问/var/log/httpd

日志类型:访问日志、错误日志

(1)错误日志:

ErrorLoglogs/error_log

LogLevelwarn

LogLevel可选值:

debug, info, notice, warn,error, crit, alert, emerg,crit, alert, emerg

(2)访问日志

定义日志格式:LogFormatformat strings

LogFormat"%h %l %u %{%Y-%m-%d %H:%M:%S}t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" testlog

使用日志格式:

CustomLoglogs/access_logtestlog

参考帮助:http://httpd.apache.org/docs/2.2/mod/mod_log_config.html#formats

%h 客户端IP地址

%l 远程用户,启用mod_ident才有效,一般为减号“-”

%u 验证(basic,digest)远程用户,非登陆访问时,为一个减号“-”

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

%r First line of request,即表示请求报文的首行;记录了这次请求的“方法”,“URL”以及协议版本

%>s 响应状态码

%b 响应报文的大小,单位是字节;不包括响应报文http首部

%{Referer}i请求报文中首部“referer”的值;即从哪一个页面中的超连接跳转至当前页面的

%{User-Agent}i请求报文中首部“User-Agent”的值;即发出请求的应用程

image.png

修改日志格式:

查找到位置

image.png

复制进自建的配置文件,并修改

image.png

1三、设定默认字符集

AddDefaultCharsetUTF-8 此为默认值,自建的配置文件直接添加此项

1四、定义路径别名

image.png

开启options indexes功能后测试

image.png

1五、基于用户的访问控制

认证方式:basic铭文验证、digest摘要验证

(1)添加配置信息

image.png

若是只须要某个.htpasswd中某个用户访问,在require后写该用户名字便可,其余用户将没法访问

(2)在/data/下建立.htpasswd

htpasswd -c /data/.htpasswd audi,第一次建立必须加-c

htpasswd /data/.htpasswd bmw,后续建立不能加-c,不然会覆盖

htpasswd /data/.htpasswd cadillac

image.png

(3)重启服务验证

image.png

附:htpasswd其它选项

htpasswd /DIR/.htpasswd USER

-c 自动建立文件,仅应该在文件不存在时使用

-p 明文密码

-d CRYPT格式加密,默认

-m md5格式加密

-s  sha格式加密

-D 删除指定用户

1六、基于组帐号进行认证

    (1)自建的配置文件写入

image.png

    (2)创建用户文件和组文件

image.png

    组的创建并分配用户

image.png

    (3)测试g1组

image.png

    登陆成功

image.png

    测试g2组

image.png

无效提示从新登陆

image.png

1七、远程客户端和用户验证的控制

Satisfy ALL|Any

ALL 客户机IP和用户验证都须要经过才能够

Any客户机IP和用户验证,有一个知足便可

示例

Require valid-user

Order allow,deny

Allow from 192.168.1

Satisfy Any

1八、实现用户家目录的http共享

基于模块mod_userdir.so实现

(1)vim /etc/httpd/conf/httpd.conf

<IfModulemod_userdir.c> ---->此项取消注释

#UserDirdisabled   ---->此项添加注释

UserDir public_html   ---->指定共享目录的名称

</IfModule>

(2)准备目录

su -chenux;mkdir ~/public_html  ---->与上面的UserDir后面的目录对应

setfacl -m u:apache:x ~chenux

1九、ServerSignatureOn | Off | EMail(默认是off)

当客户请求的网页并不存在时,服务器将产生错误文档,缺省状况下因为打开了ServerSignature选项,错误文档的最后一行将包含服务器的名字、Apache的版本等信息

若是不对外显示这些信息,就能够将这个参数设置为Off

设置为Email,将显示ServerAdmin的Email提示

20、status页面,显示状态信息

基于LoadModulestatus_modulemodules/mod_status.so模块

image.png

Require处依然能够填写只容许哪一个ip查看状态

写好后浏览器地址栏输入192.168.239.70/status

image.png

2一、https重定向

(1)/etc/httpd/conf.d/ssl.conf中对应的私钥证书等文件已经准备好

(2)更改/etc/httpd/conf.d/*.conf中

clipboard.png

相关文章
相关标签/搜索