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

[经验分享] httpd学习:linux web server

[复制链接]

尚未签到

发表于 2018-10-20 08:26:14 | 显示全部楼层 |阅读模式
  httpd:
  安装方式:
  rpm包安装,光盘
  ]# rpm -q httpd
  httpd-2.2.15-60.el6.centos.4.x86_64
  编译
  centos6:
  配置文件/etc/httpd/conf/httpd.conf
  /etc/httpd/  根目录
  conf.d/*.conf作为httpd.conf的补充文件
  服务脚本/etc/rc.d/init.d/httpd
  配置文件/etc/sysconfig/httpd
  主程序文件/
  # rpm -ql httpd | grep "bin"
  /usr/sbin/apachectl
  /usr/sbin/htcacheclean
  /usr/sbin/httpd
  /usr/sbin/httpd.event
  /usr/sbin/httpd.worker
  。。。。。。
  日志文件/var/log/httpd
  access_log:访问日志
  error_log:错误日志
  站点文档目录/var/www/html
  配置文件组成
  ~]# grep 'section' /etc/httpd/conf/httpd.conf
  # The configuration directives are grouped into three basic sections:
  # The directives in this section affect the overall operation of Apache,
  # The directives in this section set up the values used by the 'main'
  # WebDAV module configuration section.
  # The first VirtualHost section is used for requests without a known
  配置格式:directivevalue
  directive: 不区分字符大小写;
  value: 为路径时,取决于文件系统;
  常用修改配置
  ~# cp/etc/httpd/conf/httpd.conf{,.bak}
  1、修改端口Listen 12.34.56.78:80省略ip表示监听所有端口,listen可以多次
  ~# ss -tnl |grep '80'
  2、持久连接,获取资源后不断开等待请求
  persisten connection
  如何断开:数量、时间,httpd2.4支持毫秒级持久时间
  非持久连接,打开一个资源获取后立即断开
  KeepAliveOff|ON选择打开或者关闭持久连接
  MaxKeepAliveRequests最大连接数
  KeepAliveTimeout15保持时间
  请求连接:$ telnet 192.168.5.11 83
  GET /URL HTTP1/.1
  HOST:HOSTNAME OR IP
  3、MPM,multipathprocess module多路处理模块
  prefork、worker、event
  httpd-2.2不支持同时编译多个模块,所以只能编译时选定一个;rpm安装的包提供三个二进制程序文件,分别用于实现对不同MPM机制的支持,# ps-ax | grep httpd默认为/usr/sbin/httpd,prefork
  #httpd -h帮助
  #httpd -l查看静态编译模块  -M查看所有模块
  Compiled in modules:
  core.c
  prefork.c
  http_core.c
  mod_so.c
  更换http程序/etc/sysconfig/httpd
  #HTTPD=/usr/sbin/httpd.worker|prefork|event
  重启服务
  httpd.worker -l
  Compiled in modules:
  core.c
  worker.c
  http_core.c
  mod_so.c
  prefork的配置:
  
  StartServers       8
  MinSpareServers    5
  MaxSpareServers   20
  ServerLimit      256
  MaxClients       256
  MaxRequestsPerChild  4000
  
  worker的配置:
  
  StartServers         4
  MaxClients         300
  MinSpareThreads     25
  MaxSpareThreads     75
  ThreadsPerChild     25
  MaxRequestsPerChild  0
  
  PV,UV
  PV: Page View
  UV: User View
  独立IP量;
  300*86400=40W+
  4、DSO
  配置指令实现模块加载
  LoadModule
  模块路径可使用相对地址
  相对于ServerRoot(/etc/httpd)指向的路径而言;
  #/etc/httpd/modules/
  5、定义'Main' server的文档页面路径,根路径
  DocumentRoot
  文档路径映射:
  DocumentRoot指向的路径为URL路径的起始位置;
  # vi /etc/httpd/conf/httpd.conf
  DocumentRoot "/var/www/html"
  6、站点访问控制
  可基于两种类型的路径指明对哪些资源进行访问控制
  文件系统路径:
   针对目录所有文件
   针对单个文件
   正则表达式,效率低
  URL路径:
  
  ...
  访问控制机制:
  基于来源地址;
  基于账号;
  7、Directory中“基于来源地址”实现访问控制
  (1)Options
  所有可用特性:Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews多视图
  None, All,include
  Indexes: 索引;
  Options Indexes FollowSymLinks比较危险,一般禁止
  FollowSymlinks:允许跟踪符号链接文;
  AllowOverride:是否允许覆盖 None
  (2) 基于来源地址的访问控制机制
  Order:检查次序,后面默认机制
  Order allow,deny白名单
  Order deny,allow黑名单
  Allow from 来源
  Deny from 来源
  来源地址:
  IP   NetAddr:172.16.0.0/16 or172.16.0.0/255.255.0.0
  8、定义默认主页面
  DirecotryIndexindex.html index.html.var
  9、日志设定
  错误日志:
  ErrorLoglogs/error_log
  LogLevelwarn
  debug,info, notice, warn, error, crit, alert, emerg
  访问日志:
  CustomLoglogs/access_log combined
  LogFormat "%h %l %u %t \"%r\" %>s %b\"%{Referer}i\" \"%{User-Agent}i\"" combined
  %h:客户端IP地址;

  %l: Remote logname (from>  %u:Remote user,  (from auth; may be bogus ifreturn status (%s) is 401);
  %t:Time the request was received (standard englishformat),服务器收到请求的时间;
  %r:First line of request,请求报文的道行信息(methodurl version);
  %>s: 响应状态码;
  %b: 响应报文的大小,单位是字节,不包括响应报文首部;
  %{Referer}i:请求报文当中"referer"首部的值;当前资源的访问入口,即从哪个页面中的超链接跳转而来;
  %{User-Agent}i:请求报文当中"User-Agent"首部的值;即发出请求用到的应用程序;
  详情:http://httpd.apache.org/docs/2.2/mod/mod_log_config.html#formats
  10、路径别名
  DocumentRoot"/www/htocs"
  --> /www/htdocs/download/bash-4.4.2-3.el6.x86_64.rpm
  Alias/URL/"/PATH/TO/SOMEDIR/"
  Alias/bbs/ "/forum/htdocs"
  --> /forum/htdocs/bbs/
  11、设定默认字符集
  AddDefaultCharsetUTF-8
  GBK,GB2312, GB18030
  12、基于用户的访问控制
  认证质询:
  WWW-Authenticate:响应码为401,拒绝客户端请求,并说明要求客户提供账号和密码;
  认证:
  Authorization:客户端用户填入账号和密码后再次发送请求报文;认证通过,则服务器发送响应的资源;
  认证类型:
  basic:明文
  digest:消息摘要
  安全域:需要用户认证后方能访问的路径;
  应该通过名称对其进行标识,并用于告知用户认证的原因;
  用户的账号和密码存储于何处?
  虚拟账号:仅用于访问某服务时用到的认证标识;
  存储:
  文本文件
  SQL数据库
  ldap
  nis
  basic认证:
  (1) 定义安全域
  
  Options None
  AllowOverride None
  AuthType Basic
  AuthName "STRING"
  AuthUserFile "/PATH/TO/HTTPD_USER_PASSWD_FILE"
  Require user username1 username2 ...
  
  允许账号文件中的所有用户登录访问:
  Requirevalid-user
  (2) 提供账号和密码存储(文本文件)
  使用htpasswd命令进行管理
  htpasswd[options] passwordfile username
  -c: 自动创建passwordfile,因此,仅应该在添加第一个用户时使用;
  -m: md5加密用户密码;
  -s: sha1加密用户密码;
  -D: 删除指定用户
  (3) 实现基于组进行认证
  
  Options None
  AllowOverride None
  AuthType Basic
  AuthName "STRING"
  AuthUserFile "/PATH/TO/HTTPD_USER_PASSWD_FILE"
  AuthGroupFile "/PATH/TO/HTTPD_GROUP_FILE"
  Require group GROUP1 GROUP2 ...
  
  要提供:用户账号文件和组文件;
  组文件:每一行定义一个组
  GRP_NAME:user1 user2 user3 ...
  示例:
  
  Options None
  AllowOverride None
  AuthType Basic
  AuthName "Administatorprivate"
  AuthUserFile"/etc/httpd/conf.d/.htpasswd"
  AuthGroupFile"/etc/httpd/conf.d/.htgroup"
  Require group webadmin
  
  13、虚拟主机
  有三种实现方案:
  基于ip:
  为每个虚拟主机准备至少一个ip地址;
  基于port:
  为每个虚拟主机准备至少一个专用port;实践中很少使用;
  基于hostname:
  为每个虚拟主机准备至少一个专用hostname;
  可混合使用上述三种方式中任意方式;
  注意:一般虚拟主机莫与中心主机混用,所以,要使用虚拟主机,先禁用中心主机;
  禁用中心主机:注释DocumentRoot
  每个虚拟主机都有专用配置:
  
  SeverName
  DocumentRoot""
  
  ServerAlias: 虚拟主机的别名;
  ErrorLog
  CustomLog
  
  
  14、内置的status页面
  
  SetHandler server-status
  Order deny,allow
  Deny from all
  Allow from 172.16
  
  实现:基于账号实现访问控制


运维网声明 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-623857-1-1.html 上篇帖子: 4.Office Web APPS Server 下篇帖子: 如何安装Ubuntu Server版
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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