返回顶部
首页 > 资讯 > 精选 >httpd-2.2 配置及用法是什么
  • 593
分享到

httpd-2.2 配置及用法是什么

2023-06-28 16:06:34 593人浏览 泡泡鱼
摘要

Httpd-2.2 配置及用法是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、监听的套接字Listen [IP:]port此指令可以出现多次, 用于指定监听多

Httpd-2.2 配置及用法是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

1、监听的套接字

Listen [IP:]port

此指令可以出现多次, 用于指定监听多个不同的套接字:

Listen 80Listen 192.168.1.116:8080

2、配置文件中使用的 keep alive

目前多数的浏览器都请求服务器保持持续连接,这种功能就称为“KeepAlive”,它是HTTP1.1中的标准规格,一般是用来强化服务器的性能。在使用保持连接功能时,设置客户一次请求连接能影响文件的最大上限,建议把默认值设为ON,以便提高访问性能。但当使用负载均衡时,会影响负载均衡的效果,在未断开连接之前,同义客户端始终被定向到同一台服务器。

KeepAlive {On|Off}    KeepAliveTimeout 2                  #超时时间    MaxKeepAliveRequests 50       #长连接最大请求数

3、MPM

   #判定模块是否存在        StartServers: 默认启动的工作进程数;   #不包括主进程,主进程只是负责子进程的创建回收等        MinSpareServers: 最少空闲进程数;        MaxSpareServers: 最大空闲进程数;        ServerLimit: 最大活动进程数;        MaxClients: 并发请求的最大数;   #请求连接进来不一定会活动,要小于等于serverlimit        MaxRequestsPerChild: 每个子进程在生命周期内所能够服务的最多请求个数;  prefork.c>              StartServers:启动的子进程的个数        MaxClients: 并发请求的最大数;        MinSpareThreads:最小空闲线程数;        MaxSpareThreads:最大空闲线程数;        ThreadsPerChild:每个子进程可生成的线程数;        MaxRequestsPerChild:每个子进程在生命周期内所能够服务的最多请求个数,0表示不限定;  prefork.c>

4、DSO模块加载方式

   LoadModule module_name /path/to/module

如果使用相对路径,则对于ServerRoot所定义的位置而言;例如:

 LoadModule PHP5_module /usr/lib64/httpd/modules/php5.so

让服务重载配置文件方能生效;

httpd -M: 列出已经装载的所有DSO及非DSO模块httpd -l: 列出支持使用的非DSO模块

默认使用prefork模块,若想使用worker,则修改脚本配置文件:

[root@localhost conf]# vim /etc/sysconfig/httpd  #HTTPD=/usr/sbin/httpd.worker    #启用此项,修改所使用的二进制程序

5、配置站点根目录

DocumentRoot /path/to/somewhere

Apache服务器存放网页的路径,默认所有要求提供HTTP服务的连接,都以这个目录为主目录,默认为 /var/www/html

6、配置页面访问属性

           Options:         Indexes: 缺少指定的默认页面时,允许将目录中的所有文件以列表形式返回给用户,危险;         FollowSymLinks: 允许跟随符号链接所指向的原始文件;         None: 所有都不启用;         All: 所有都启用;         ExecCGI: 允许使用mod_cgi模块执行CGI脚本;         Includes: 允许使用mod_include模块实现服务器端包含(SSI);          MultiViews:允许使用mod_neGotiation实现内容协商;         SymLinksIfOwnerMatch:在链接文件属主属组与原始文件的属主属组相同时,允许跟随符号链接所指向的原始文件; 可以配置网站目录下的访问属性,使用可以基于正则表达式的匹配,但是一般不建议使用,会耗费时间。类似的指令还有:  : 配置URL访问属性,与相似(可以配置像内生的status页面或者定义了别名的路径等);   : 限定单个文件的访问属性;   : 相当于Location ~  ,但一般建议使用此配置进行正则匹配;

如果某要配置其属性的URL能映射到某具体文件系统路径,建议使用。

7、基于主机的访问控制

         Options        AllowOverride None    #AllowOverride表示以下基于ip的访问控制是否被禁用,none表示不被禁用        Order Deny,Allow        #后面的表示默认规则        Allow        Deny

基于IP控制:

       Allow from        Deny from            IP, Network Address            172.16            172.16.0.0            172.16.0.0/16            172.16.0.0/255.255.0.0

二者都匹配或二者都无匹配项时,则以后者为准;否则,则以匹配到的为准;

8、定义默认主页面

DirectoryIndex index.php index.html home.html default.html  #自左而右依次找

9、用户主页

如果期望让每个用户都可以创建个人站点:http://Server_IP/~Username/

  userdir disablied: 禁止  userdir public_html:public_html是用户家目录下的目录名称,所有位于此目录中的文件均可通过前述的访问路径进行访问

配置用户主页示例:

[root@localhost conf]# vim httpd.conf  #首先在配置文件中启用以下选项  366     #UserDir disabled 367  368     UserDir public_html [root@localhost httpd]# service httpd reload[root@localhost conf]# useradd feiyu[root@localhost conf]# su -  feiyu[feiyu@localhost ~]$ mkdir public_html[feiyu@localhost ~]$ cd public_html/[feiyu@localhost public_html]$ echo "hello feiyu"  > index.html

此时可以访问了。但apache用户没有权限读取文件,所以还得定义访问权限

[feiyu@localhost ~]$ ls -ld /home/feiyu/drwx------. 6 feiyu feiyu 4096 Feb 15 20:42 /home/feiyu/[feiyu@localhost ~]$ setfacl -m u:apache:x /home/feiyu/[feiyu@localhost ~]$ getfacl /home/feiyu/getfacl: Removing leading '/' from absolute path names# file: home/feiyu/# owner: feiyu# group: feiyuuser::rwxuser:apache:--xgroup::---mask::--xother::---[feiyu@localhost ~]$ curl 192.168.1.117/~feiyu/hello feiyu

10、配置日志功能

默认日志目录:/var/log/httpd/

 access.log: 访问日志,其需要记录的内容需要自定义  error.log: 错误日志

访问日志:CustomLog “/path/to/access_log_file” FORMat_Name #CustomLog自定义访问日志路径LogFormat Format_String Format_Name

%h: 客户端地址%l: 远程登录名,通常为-%u: 认证时的远程用户名,没有认证时为-%t: 收到请求时的时间;%r: 请求报文的起始行;%>s: 响应状态码;%b: 响应报文的长度,单位为字节%{Header_Name}i: 记录指定请求报文首部的内容(value);

详情请参考:http://httpd.apache.org/docs/2.2/mod/mod_log_config.html#formats

错误日志: ErrorLog

11、路径别名

  Alias /alias/ "/path/to/somewhere/"

意味着访问http://Server_IP/alias/时,其页面文件来自于/path/to/somewhere这个位置;
注意:前后路径要一致,结尾都有”/”或者都没有

12、设定默认字符集

    ADDDefaultCharset  UTF-8

定义cgi脚本路径别名:

    CGI: Common Gateway Interface协议(执行某些文件时要以管理员的权限执行,已经很少被使用了)

13、CGI脚本路径别名

CGI: Common Gateway Interface协议(执行某些文件时要以管理员的权限执行,已经很少被使用了)

定义cgi脚本路径别名:

ScriptAlias /URL/ "/path/to/somewhere/"   #使用此种方法定义文件则被使用cgi协议执行或者显式使用execcgi

14、基于用户的访问控制

当你的网站或者站点的某个路径只想让你授权的用户访问时,就可以使用基于用户的访问控制。

虚拟用户:可以使用文件,sql数据库或者ldap等机制进行认证。认证类型(auth):basic: 基本认证,帐号和密码明文发送;

digest:摘要认证,hash编程之后发送,大多浏览器不支持;

认证提供者(authentication provider):帐号和密码的存放位置

授权机制(authorization):根据什么进行授权

例:基于文件,做基本认证,根据用户和组进行授权

使用htpasswd命令生成认证库

htpasswd: -c #第一次使用-c创建新文件,不是第一次不要使用此选项-m #用户密码使用MD5加密后存放-s #用户密码使用SHA加密后存放-p #用户密码不加密-d #禁用一个账户-e #启用一个账户[root@localhost fin]# htpasswd -c -m /etc/httpd/conf/.htpasswd feiyu     #第一次需要使用-c选项创建文件New passWord: Re-type new password: Adding password for user feiyu[root@localhost fin]# htpasswd -m /etc/httpd/conf/.htpasswd feiyu1New password: Re-type new password: Adding password for user feiyu1

配置认证机制

         Options None        AllowOverride AuthConfig        AuthType Basic        AuthName "Private Area"    #AuthBasicProvider file                    #可以不用指,默认为文件        AuthUserFile /etc/httpd/conf/.htpasswd     #所使用的认证文件        Require valid-user      #允许文件中的所有合法账号

访问界面如下所示:

httpd-2.2 配置及用法是什么

基于组进行认证

先创建用户再创建组文件:

     组文件格式:         组名: 用户1 用户2 用户3            Options None        AllowOverride AuthConfig        AuthType Basic        AuthName "Private Area"    #AuthBasicProvider file        AuthUserFile /etc/httpd/conf/.htpasswd        AuthGroupFile /etc/httpd/conf/.htgroup      #所使用的组文件        Require group GroupName     ">

15、虚拟主机

虚拟主机意即一个物理服务器提供多个站点,以前刚建站时使用的是阿里云的免费虚拟主机,我想应该就是基于此方法配置的。虚拟主机的实现方法有三种:

基于不同的IP实现不同的虚拟主机:变化IP

基于不同的port实现不同的虚拟主机:变化port

基于不同的FQDN实现不同的虚拟主机:变化ServerName的参数

配置使用虚拟主机:

(1)注释中心主机,并启用相关配置

[root@localhost http]# vim /etc/httpd/conf/httpd.conf DocumentRoot "/var/www/html"     #注释中心主机 NameVirtualHost *:80    #使用基于域名的虚拟主机时需要启动此项,并且下面的配置与其保持一致,在 httpd-2.4 中不需要使用

(2)基于ip的虚拟主机:

           ServerName www.feiyu1.com        DocumentRoot "/var/www/html/feiyu1"          ServerName www.feiyu2.com        DocumentRoot "/var/www/html/feiyu2"

(3)基于端口的虚拟主机:

        ServerName www.feiyu1.com        DocumentRoot "/var/www/html/feiyu1"

 192.168.1.117:8080> ServerName www.feiyu2.com DocumentRoot “/var/www/html/feiyu2”

(4)基于域名的虚拟主机:

NameVirtualHost *:80         ServerName www.feiyu1.com        DocumentRoot "/var/www/html/feiyu1"        CustomLog "/var/log/httpd/feiyu1-access_log" combined         ServerName www.feiyu2.com        DocumentRoot "/var/www/html/feiyu2"        CustomLog "/var/log/httpd/feiyu2-access_log" combined

16、启用 https 协议

https是在http的基础上进行ssl/tls加密实现的结果,启用https固然更安全,不会存在流量劫持等风险,但使用https就不再是三次握手了,它会增加建立连接的时间。

http与https首次请求对比图:

httpd-2.2 配置及用法是什么

httpd-2.2 配置及用法是什么

http: 文本协议,80/tcphttps: 二进制格式的协议, 443/tcpSSL握手要完成的工作:

交换协议版本号

选择双方都支持的加密方式

对两端实现身份验正

密钥交换

SSL会话基于IP地址进行,不支持在基于FQDN的虚拟主机上实现,所以在只有一个公网IP的服务器上使用虚拟主机时,只能为一个站点使用https。

配置支持https:

(1)安装httpd支持ssl模块

[root@localhost ~]# yum install mod_ssl -y

(2)自建CA

[root@localhost ~]# cd /etc/pki/CA[root@localhost ~]# (umask 077; openssl genrsa -out private/cakey.pem 2048)[root@localhost ~]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 365

(3)生成私钥

[root@localhost ~]# cd /etc/httpd/conf/[root@localhost ~]# mkdir ssl[root@localhost ~]# cd ssl[root@localhost ~]# (umask 077; openssl genrsa -out httpd.key 1024)

(4)生成证书申请

[root@localhost ~]# openssl req -new -key httpd.key -out httpd.csr

(5)CA签署证书

[root@localhost ~]# openssl ca -in httpd.csr -out httpd.crt -days 365

(6)修改httpd的ssl配置文件

[root@localhost ~]# vim /etc/httpd/conf.d/ssl.confDocumentRoot "/var/www/html/feiyu1"ServerName www.feiyu.comSSLCertificateFile /etc/httpd/conf/ssl/httpd.crtSSLCertificateKeyFile /etc/httpd/conf/ssl/httpd.key

(7)验证导入浏览器

验证,可以使用以下命令进行验证或者将证书导入到浏览器并进行访问:

# openssl s_client -connect IP:port -CAfile /path/to/CA_certificate_file

17、服务器status页面

status页面是httpd内生的,且此信息可以通过WEB予以显示,此信息是关于服务器的运行状态的所以不能对所有人都显示。

[root@localhost html]# vim /etc/httpd/conf/httpd.confSetHandler server-statusAuthType BasicAuthName "Server Status"AuthUserFile "/etc/httpd/conf/.htpasswd"Require valid-userOrder deny,allowAllow from all

SetHandler: 显式的定义使用的处理器 ,是当文件被调用时,Apache内部表示形式;一般每种文件类型都有其隐式处理器;

18、使用mod_deflate模块压缩页面优化传输速度

一般当CPU多空闲,带宽压力大时才会启用压缩,启用压缩不但能优化传输速度也能节约带宽,但是其一个弊端就是会使缓存的命中率下降。

[root@localhost html]# vim /etc/httpd/conf/httpd.conf SetOutputFilter DEFLATE    #启用deflate  [root@localhost conf.d]# vim deflate.conf     # Restrict compression to these MIME types    定义要压缩的文件类型     AddOutputFilterByType DEFLATE text/plain     AddOutputFilterByType DEFLATE text/html    AddOutputFilterByType DEFLATE application/xhtml+xml    AddOutputFilterByType DEFLATE text/xml    AddOutputFilterByType DEFLATE application/xml    AddOutputFilterByType DEFLATE application/x-javascript    AddOutputFilterByType DEFLATE text/javascript    AddOutputFilterByType DEFLATE text/CSS     # Level of compression (Highest 9 - Lowest 1)    DeflateCompressionLevel 9                     #压缩比,默认为6         # Netscape 4.x has some problems.    BrowserMatch ^Mozilla/4 gzip-only-text/html         # Netscape 4.06-4.08 have some more problems    BrowserMatch ^Mozilla/4\.0[678] no-gzip         # MSIE masquerades as Netscape, but it is fine    BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html

19、资源限定

软限制:可以超出的限制,但仅超出一定时长;

硬限制:绝对不能超出的限制

使用 ulimit 可以修改软限制:

-n [N]: 显示或限定能打开的最大的文件句柄数;

-u [N]: 所能够运行的最多进程数;

其相对应的配置文件为:/etc/security/limits.conf,扩展配置:/etc/security/limits.d/*.conf

root@tianfeiyu # vim /etc/security/limits.conf #设定硬限制apache hard nofile   65535  #设定能打开的最大文件数apache hard nproc 30000#设定能打开的最大进程数

20、httpd程序包自带的工具介绍

httpd:Apache 服务器。apachectl:Apache HTTP 服务器控制工具。ab:Apache HTTP 服务器性能基准工具。apxs:Apache 扩展工具。configure:配置源代码。dbmmanage:为基本认证创建和更新 DBM 格式的用户认证文件。htcacheclean:清理磁盘缓存。htdigest:为摘要认证创建和更新用户认证文件。htdbm:操作 DBM 密码数据库。htpasswd:为基本认证创建和更新用户认证文件。httxt2dbm:为 RewriteMap 创建 dbm 文件。logresolve:将 Apache 日志文件中的 IP 地址解析到主机名称。rotatelogs:不关闭 Apache 而切换日志文件。suexec:执行外部程序前切换用户。运行目录:/etc/httpd配置文件:主配置:/etc/httpd/conf/httpd.conf扩展配置:/etc/httpd/conf.d/*.confSocket: 80/tcp, 443/tcp文档根目录:/var/www/htmlCGI目录:/var/www/cgi-bin/MPM(Multipath Processing Module):多道处理模块,非一个模块,而是对一种特性的称谓多进程模型 prefork: 一个进程响应一个请求(主进程创建进程响应)多线程模型 worker: 一个主进程多个子进程,一个进程生成多个线程,一个线程响应一个请求,一个进程生成的线程数有限事件模型 event: 一个线程响应多个请求,基于事件驱动机制来维持多个用户请求;event-driven: 事件驱动,主要目的在于实现单线程响应多个请求;httpd配置目录信息:服务脚本:/etc/rc.d/init.d/httpd脚本配置文件:/etc/sysconfig/httpd高度模块化:DSO(Dynamic Shared Object)动态化装饰模块MPM(Multipath Processing Module):多道处理模块,非一个模块,而是对一种特性的称谓

看完上述内容,你们掌握httpd-2.2 配置及用法是什么的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网精选频道,感谢各位的阅读!

--结束END--

本文标题: httpd-2.2 配置及用法是什么

本文链接: https://www.lsjlt.com/news/320431.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • httpd-2.2 配置及用法是什么
    httpd-2.2 配置及用法是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、监听的套接字Listen [IP:]port此指令可以出现多次, 用于指定监听多...
    99+
    2023-06-28
  • Spark SQL配置及使用的方法是什么
    本篇内容介绍了“Spark SQL配置及使用的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!XY个人记SparkSQL是...
    99+
    2023-06-21
  • AppFabric安装及配置的方法是什么
    要安装和配置AppFabric,可以按照以下步骤进行操作:1. 下载AppFabric安装程序:可以从Microsoft官网下载Ap...
    99+
    2023-09-26
    AppFabric
  • apache安装及配置的方法是什么
    要安装和配置Apache服务器,可按照以下步骤进行操作:1. 下载Apache软件包:访问Apache官方网站(https://ht...
    99+
    2023-09-21
    apache
  • jQuery安装及配置的方法是什么
    jQuery是一个JavaScript库,可以通过不同的方法进行安装和配置。1. 下载和引入:可以从jQuery官方网站上下载jQu...
    99+
    2023-10-12
    jQuery
  • phpldapadmin安装及配置的方法是什么
    安装和配置phpLDAPadmin是很简单的,下面是一个基本的安装和配置步骤: 安装PHP和LDAP扩展:首先确保已经安装了PHP...
    99+
    2024-03-01
    phpldapadmin
  • Keycloak各种配置及API使用的方法是什么
    这篇文章主要介绍了Keycloak各种配置及API使用的方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Keycloak各种配置及API使用的方法是什么文章都会有所收获,下面我们一起来看看吧。1.创建c...
    99+
    2023-07-05
  • CentOS 6.4安装及配置的方法是什么
    以下是CentOS 6.4的安装及配置方法:1. 下载CentOS 6.4的ISO文件:从CentOS官方网站或镜像站点下载Cent...
    99+
    2023-09-22
    CentOS
  • c++ cmake调试及配置的方法是什么
    在C++中使用CMake进行调试和配置主要有以下几个步骤:1. 安装CMake:首先需要安装CMake工具,可以从CMake官网下载...
    99+
    2023-10-18
    c++ cmake
  • ubuntu redis安装及配置的方法是什么
    要安装和配置Redis在Ubuntu上,您可以按照以下步骤操作: 更新系统软件包列表: sudo apt update 安装...
    99+
    2024-04-09
    ubuntu redis
  • linux中yum是什么及怎么配置使用
    这篇文章主要介绍了linux中yum是什么及怎么配置使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇linux中yum是什么及怎么配置使用文章都会有所收获,下面我们一起来看看...
    99+
    2023-04-27
    linux yum
  • vue.config.js常用配置方法是什么
    这篇文章主要介绍“vue.config.js常用配置方法是什么”,在日常操作中,相信很多人在vue.config.js常用配置方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue.config.js...
    99+
    2023-07-04
  • tomcat配置环境及安装的方法是什么
    Tomcat是一种常用的Java Servlet容器,可以运行Java Web应用程序。下面是Tomcat的配置环境及安装方法:1....
    99+
    2023-06-13
    tomcat配置 tomcat
  • SQL SERVER 2000安装及配置的方法是什么
    SQL Server 2000的安装和配置方法如下:1. 下载SQL Server 2000的安装文件,可以从官方网站或其他可信来源...
    99+
    2023-08-16
    SQL SERVER
  • nodejs安装及环境配置的方法是什么
    要安装并配置Node.js环境,可以按照以下步骤进行:1. 下载Node.js安装包:在Node.js官方网站 (https://n...
    99+
    2023-08-24
    nodejs
  • Docker启动常用容器命令及配置方法是什么
    这篇文章主要介绍了Docker启动常用容器命令及配置方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Docker启动常用容器命令及配置方法是什么文章都会有所收获,下面我们一起来看看吧。Docker 容器...
    99+
    2023-07-05
  • springboot整合druid及配置依赖的方法是什么
    本篇内容主要讲解“springboot整合druid及配置依赖的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“springboot整合druid及配置依赖的方法是什么”吧!Druid简...
    99+
    2023-06-22
  • SpringBoot日志的配置及输出的方法是什么
    这篇文章主要介绍“SpringBoot日志的配置及输出的方法是什么”,在日常操作中,相信很多人在SpringBoot日志的配置及输出的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”SpringBoo...
    99+
    2023-06-21
  • postgresql安装及配置步骤是什么
    PostgreSQL的安装和配置步骤如下: 下载安装包:首先需要从官方网站(https://www.postgresql.org...
    99+
    2024-04-09
    postgresql
  • vps配置的方法是什么
    VPS(虚拟专用服务器)的配置方法通常包括以下步骤:1. 选择合适的VPS提供商:根据自己的需求和预算选择一个可靠的VPS提供商。2...
    99+
    2023-09-16
    vps
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作