设为首页 收藏本站
查看: 1590|回复: 0

[经验分享] 【我的技术我做主】Apache Httpd Web服务器详解

[复制链接]

尚未签到

发表于 2018-11-21 08:52:45 | 显示全部楼层 |阅读模式
  一.简介
  Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。Apache HTTP服务器是一个模块化的服务器,源于NCSAhttpd服务器.Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。
  Apache官网:http://apache.org/
  Apache Httpd网站:http://httpd.apache.org/
  Apache httpd Web服务器特性
  1.事先创建进程
  2.模块多元化,各种功能模块的添加
  3.可以支持SSL技术
  4.支持多种方式的虚拟主机配置
  虚拟主机常用配置主要分为:
  基于IP的虚拟主机
  基于端口的虚拟主机
  基于域名的虚拟主机
  5.支持多种方式的HTTP认证
  6.支持URL重写;等多种特性
  二.httpd安装方式
  主要安装方式分为两种:一种为rpm包安装;另一种为源码包安装
  安装httpd软件包时,请现将SELinux处于permssive或disabled,否则可能某些服务无法启动
  修改SELinux配置文件/etc/selinux/config,修改“SELINUX=permssive”
DSC0000.jpg

  httpd软件包安装:yum -y install httpd   (yum的搭建不多说了,可以查看本博客yum源的搭建)
  三.Httpd端口,目录介绍
  httpd默认端口为tcp/80端口;ssl 协议端口为443/tcp端口
  httpd工作的默认根目录为/etc/httpd
  http的配置文件目录为/etc/httpd/conf
  httpd主配置文件为httpd.conf文件
  以 /etc/httpd/conf.d/*.conf结尾的配置文件均为httpd.conf的主配置文件的组成部分
  Apache Httpd模块化目录为/etc/httpd/modules
  Apache Httpd日志目录为/etc/httpd/logs -->/var/log/httpd  指向/var/log/httpd目录文件
  日志文件分为:访问日志access_log;错误日志err_log 两种
  Apache Httpd网页目录为/var/www目录
  /var/www目录下分为html目录和cgi-bin目录:html目录为静态网页目录如html语言开发的;
  cgi-bin目录为动态网页目录如asp,php,jsp,Java等开发的网站程序。
  CGI简介:
  Common Gateway Interface,简称CGI。在物理上是一段程序,运行在服务器上,提供同客户端HTML页面的接口。cgi是外部应用程序(CGI程序)与Web服务器之间通信的接口,CGI规范允许Web服务器执行外部程序,并将它们的输出发送给Web浏览器,CGI将Web的一组简单的静态超媒体文档变成一个完整的新的交互式媒体。
  四.httpd主配置文件/etc/httpd/conf/httpd.conf 详解
  ### Section 1: Global Environment  全局配置
        ServerRoot "/etc/httpd"  httpd服务器根目录
  PidFile run/httpd.pid       httpd服务进程pid,保存在httpd.pid文件中
        KeepAlive Off                  是否启用长链接【on  or off】使用长连接可以有效的提高性能
  MaxKeepAliveRequests 100       在启用长连接后用户最多一次请求的资源数,0表示无限制请求
  KeepAliveTimeout 15      长连接的断开时常

  # prefork MPM 多处理模块
  mpm_winnt  windows下多线程处理机制;
  prefork Linux下预先生成进程处理机制,一个请求用一个进程进行响应;
  worker多个线程处理,一个请求一个线程响应;
  event一个进程处理多个请求
  可以使用httpd -l命令查看当前Linux所支持那些mpm处理模块
     httpd服务器默认使用worker处理模块,如果更改其他处理模块可修改httpd启动脚本来实现,httpd启动脚本配置文件为/etc/sysconfig/httpd,修改配置文件中#HTTPD=/usr/sbin/httpd.worker
  
        StartServers       8                  服务器启动时启动8个空闲进程
        MinSpareServers    5             最少空闲5个进程接受用户请求
        MaxSpareServers   20           最大空闲进程
        ServerLimit      256                为MaxClients指定最大上限,修改时当前服务器必须关闭服务器kill所有进程,在重新启动
        MaxClients       256               最大客户端数,最多只允许256个客户端同时请求,不能超过Serverlimit限定数  
        MaxRequestsPerChild  4000 一个进程最多响应4000次的用户请求            
        
        
        StartServers         4                 服务器启动时启动4个进程
        MaxClients         300              最大客户端数,最多只允许300个客户端同时请求
        MinSpareThreads     25          最小空闲线程
        MaxSpareThreads     75         最大空闲线程
        ThreadsPerChild     25            每 一个进程生成25个线程
        MaxRequestsPerChild  0         不做限定的用户请求
        
  #Listen 12.34.56.78:80

  Listen 80  Httpd服务器默认监听端口80,可以同时监听多个端口
        Listen 8080    或  127.0.0.1:8080
  ### Section 2: 'Main' server configuration  server主配置
  ServerAdmin root@localhost               服务器管理员
  ServerName www.example.com:80      服务器Name
  DocumentRoot "/var/www/html"         网站文档根目录,可直接修改目录路径
  如要修改默认www文档根目录,必须要定义Apache服务和功能是否被允许和访问
  也可修改相应的配置文件中 中的目录即可。
  自定义,格式如下
               
                Options FollowSymLinks
                AllowOverride None
               

  Options选项参数
  # Possible values for the Options directive are "None", "All",
# or any combination of:
#   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important.  Please see
# http://httpd.apache.org/docs/2.2/mod/core.html#options
# for more information.
#
    Options Indexes FollowSymLinks
  Indexes  索引网站目录,在网站安全中Indexes不可启用
  None      不支持任何选项
  FollowSymLinks      允许符号链接所指向的源文件
  Includes    允许执行服务端包含SSI
  ExecCGI     允许运行
  MultiViews   多视图模式,耗费资源
  ALL                支持所有选项
  AllowOverride参数
  # AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#   Options FileInfo AuthConfig Limit

  AllowOverride None  允许覆盖服务器控制访问列表
  AuthConfig 用户认证,提供用户帐号密码提供登录
  Order:用于定义基于主机的访问功能的Ip,网络地址或主机定义访问控制
   列子:如有一网站不想被192.168.100.1 和192.168.100.4 两个Ip地址访问如何配置Order?
  AllowOverride None
                            Order deny,allow
                            Deny from 192.168.100.1 192.168.100.4

  httpd -t 检测配置文件语法是否正确
   纯文本浏览器   elinks 127.0.0.1

                          elinks -dump 127.0.0.1  打开网站后直接退出
                           elinks -source 127.0.0.1 显示网站源码
  列子:基于用户认证,本地有baishouqijia 、白手起家、zhang,3个用户在访问网站时必须输入帐号密码进行访问,否则无法访问,该如何做?配置文件如下
                       DSC0001.jpg
        创建htpasswd中的用户帐号密码
          [root@localhost httpd]# htpasswd -c -m /etc/httpd/htpasswd baishouqijia
       [root@localhost httpd]# htpasswd -m /etc/httpd/htpasswd 白手起家
      [root@localhost httpd]# htpasswd -m /etc/httpd/htpasswd zhang
     [root@localhost httpd]# httpd -t
    [root@localhost httpd]# /etc/init.d/httpd restart
   [root@localhost httpd]#
   -m选项md5加密方式

     -c选项创建htpasswd文件,创建第一个用户时使用,第二个用户则无效加-c,否则重新创建htpasswd文件并替换第一次添加用户时所创建的文件
  测试:
     开始登录提示输入帐号密码
DSC0002.jpg

  输入帐号密码后
DSC0003.jpg

  

  删除用户 htpasswd -D

  DirectoryIndex index.html index.html.var   首页索引文件,如果一个网站程序中都包含,自左往右开始索引
  ErrorLog logs/error_log  错误日志目录
        LogLevel warn                日志级别
  LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
        LogFormat "%h %l %u %t \"%r\" %>s %b" common
        LogFormat "%{Referer}i -> %U" referer
        LogFormat "%{User-agent}i" agent
                %h    客户端地址
  %l     远程主机登录名称
  %u    登录网站时登录的用户名称
  %t     日志产生的时间
  %r     请求报文的第一行
  %>s   最后一次的请求的状态码
  %b     响应报文的大小
  %{Referer}i  网站来源
  %{User-Agent}i  客户端浏览器的类型
  Alias /icons/ "/var/www/icons/"  路径别名
  列子:在/mnt/www/bbs下创建index.html 并使用别名/bbs访问
      DSC0004.jpg
  测试:
   DSC0005.jpg
  四、创建添加虚拟主机
[root@localhost conf]# vim /etc/httpd/conf/httpd.conf
### Section 2: 'Main' server configuration
#DocumentRoot "/var/www/html"        注释掉
### Section 3: Virtual Hosts         添加以下部分
NameVirtualHost *:80

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-637582-1-1.html 上篇帖子: 【Apache学习】httpd2.4 版本下 https配置 下篇帖子: CentOS安装Apache详解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表