模板网站优化,中国家具网,seo引擎优化是什,集团 投入巨资 做网站目录 1、启动报错#xff1a;提示没有名字fqdn2、显示服务器版本信息3、修改监听的IP和Port3、持久连接4 、MPM#xff08; Multi-Processing Module #xff09;多路处理模块5 、DSO#xff1a;Dynamic Shared Object6 、定义Main server #xff08;主站点#xff09; … 目录 1、启动报错提示没有名字fqdn2、显示服务器版本信息3、修改监听的IP和Port3、持久连接4 、MPM Multi-Processing Module 多路处理模块5 、DSODynamic Shared Object6 、定义Main server 主站点 的文档页面路径7、定义站点主页面8 、站点访问控制常见机制9 、 中基于源地址实现访问控制10 、日志设定 摘要一个服务的配置文件非常重要弄懂配置文件是熟练掌握服务的必要前提。 一、httpd-2.2常见文件介绍 1配置文件 主配置文件尽量别改改自己的子配置文件 /etc/httpd/conf/httpd.conf 主配置文件 /etc/httpd/conf.d/*.conf 自配置文件 检查配置语法 httpd -t 通用 service httpd configtest centos7不支持 服务脚本/etc/rc.d/init.d/httpd 脚本配置文件/etc/sysconfig/httpd 服务控制和启动 chkconfig httpd on|off service {start|stop|restart|status|configtest|reload} httpd 站点网页文档根目录 /var/www/html 模块文件路径 /etc/httpd/modules 软连接 /usr/lib64/httpd/modules 主程序文件 /usr/sbin/httpd /usr/sbin/httpd.worker /usr/sbin/httpd.event 主进程文件 服务起来后会自动生成可以查进程pid最后不要手动加 /etc/httpd/run/httpd.pid 日志文件目录 /var/log/httpd access_log: 访问日志 error_log 错误日志 帮助文档包httpd-manual 按完包后重启服务就能看帮助文档没网也可以看 2httpd 配置文件的组成修改前先备份养成好习惯 # grep Section /etc/httpd/conf/httpd.conf 人为的分成3大段方便管理可以随便放 ### Section 1: Global Environment 全局环境配置 ### Section 2: Main server configuration 主服务器 ### Section 3: Virtual Hosts 虚拟主机全是注释默认没有 配置格式directive指令 value值 directive: 不区分字符大小写 value: 为路径时是否区分大小写取决于文件系统 二、Httpd 2.2 常见配置可以在官网或安装帮助包查看帮助 vim /etc/httpd/conf/httpd.conf 总配置文件 1、启动报错提示没有名字fqdn 在总配置文件搜索 /ServerName把注释去掉随便写最好写自己的网站名启动就不报错了 修改后 2、显示服务器版本信息 ServerTokens管理响应首部信息的显示服务器版本信息 搜索/ServerTokens文件默认是OS可以注释掉、删掉有默认值full ServerTokens Major|Minor|Min[imal]|Prod[uctOnly]|OS|Full 配置文件在的设置 首部显示的信息 ① ServerTokens Prod[uctOnly]Server: Apache ② ServerTokens Major: ServerApache/2 ③ ServerTokens Minor: ServerApache/2.0 ④ ServerTokens Min[imal]: ServerApache/2.0.41 ⑤ ServerTokens OS: ServerApache/2.0.41 (Unix) ⑥ ServerTokens Full (or not specified)Server: Apache/2.0.41 (Unix) PHP/4.2.2 MyMod/1.2 This setting applies to the entire server and cannot be enabled or disabled on a virtualhost-by-virtualhost basis. After version 2.0.44, this directive also controls the information presented by the ServerSignature directive. 建议使用ServerTokens Prod 安全显示越详细越不安全 可以查看帮助信息要安装httpd-manual包帮助信息很详细 实例cur -I 192.168.37.106 查询头部信息 另可以在调度器上设置直接隐藏版本信息或随意修改 3、修改监听的IP和Port 搜索/Listen默认80 Listen [IP:]PORT不要随意更改可以用于只想让特定的ip访问不让其他人访问 (1) 省略IP 表示为0.0.0.0 端口绑定所有ip (2) Listen 指令至少一个可重复出现多次写多个不能为空或注释掉注释掉服务起不来 Listen 80 Listen 8080 写多个就可开启多个端口但是访问的还是同一个网站 注意改了端口要在访问时加上自己改的端口 (3) 修改监听socket重启服务进程方可生效 3、持久连接 Persistent Connection 连接持久建立每个资源获取完成后不会断开连接而是继续等待其它的请求完成默认关闭持久连接 KeepAlive Off 断开条件数量限制100 时间限制以秒为单位 httpd-2.4 支持毫秒级 副作用对并发访问量较大的服务器持久连接功能会使用有些请求得不到响应 折中使用较短的持久连接时间 设置 KeepAlive On|Off KeepAliveTimeout 15 MaxKeepAliveRequests 100 测试telnet WEB_SERVER_IP PORT GET /URL HTTP/1.1 模仿报文首部 Host: WEB_SERVER_IP 4 、MPM Multi-Processing Module 多路处理模块 1MPM 工作模式介绍prefork、worker、 event试验阶段 ① prefork 多进程I/O 模型每个进程响应一个请求默认模型 一个主进程 生成和回收n个子进程 创建套接字不响应请求 多个子进程工作work 进程每个子进程处理一个请求系统初始时预先生成多个空闲进程等待请求最大不超过1024个 ② worker 复用的多进程I/O 模型, 多进程多线程IIS 使用此模型 一个主进程 生成m 个子进程每个子进程负责生成n个线程每个线程响应一个请求 并发响应请求m*n ③ event 事件驱动模型worker 模型的变种 一个主进程生成m个子进程每个进程直接响应n个请求并发响应请求m*n 有专门的线程来管理这些keep-alive 类型的监控线程当有真实请求时 将请求传递给服务线程执行完毕后又允许释放 。这样增强了高并发场景下的请求处理力 能力 httpd-2.2: event 测试版 centos6 默认 httpd-2.4 event 稳定版centos7 默认 图示 ① prefork MPM ② worker MPM ③ event MPM 注意httpd-2.2 不支持同时编译多个模块所以只能编译时选定一个rpm 安装的包提供三个二进制程序文件分别用于实现对不同MPM 机制的支持 2确认方法 ps aux | grep httpd 默认为/usr/sbin/httpd, 即prefork 模式 查看模块列表 查看静态编译的模块 httpd -l 查看静态编译及动态装载的模块 httpd -M 动态模块加载不需重启即生效 动态模块路径/usr/lib64/httpd/modules 3更换使用的httpd 程序模块 /etc/sysconfig/httpd 在这个文件中改 ① HTTPD/usr/sbin/httpd.worker 默认是被注释的去掉注释就切换到worker程序了 重启服务生效 pstree -p|grep httpd 查看进程和线程 httpd.worker -l 模块换了命令也换了 ② Httpd 2.4 与之不同 以动态模块方式提供 配置文件/etc/httpd/conf.modules.d/00-mpm.conf httpd -M |grep mpm 重启服务 生效 pstree -p|grep httpd 查看进程和线程 4prefork 的默认配置主配置文件中搜索/prefork IfModule prefork.c 根据工作环境设置 StartServers 8 一开启服务就准备8个进程 MinSpareServers 5 最小的空闲进程先预留不够就生成 MaxSpareServers 20 最大空闲进程 ServerLimit 256 最多进程数, 最大256 MaxClients 256 最大并发数 MaxRequestsPerChild 4000 子进程最多能处理的请求数量。在处理MaxRequestsPerChild 个请求之后, 子进程将会被父进程终止这时候子进程占用的内存就会释放( 为0时永远不释放 /IfModule 5 worker 的默认配置主配置文件中搜索/worker IfModule worker.c StartServers 4 一开启服务就准备4个进程4x25100线程 MaxClients 300 最多300个线程 MinSpareThreads 25 最小空闲25线程 MaxSpareThreads 75 最大空闲75线程和上边冲突开服务先开启4个进程再杀死1个进程 ThreadsPerChild 25 每个子进程最大25个线程 MaxRequestsPerChild 0 无限制 /IfModule 6 测试性能ab命令 yum -y install httpd-tools ab -c 100 -n 1000 http://192.168.30.106/ - c并发连接数 -n总的连接数 结果发现prefork和worker性能没有什么较大的差异 5 、DSODynamic Shared Object ① 加载动态模块配置/etc/httpd/conf/httpd.conf 主配置文件 配置指定实现模块加载格式搜索/LoadModule ② 格式 LoadModule mod_name mod_path 模块文件路径可使用相对路径相对于ServerRoot 服务的根设置的为/etc/httpd ③ httpd -M 可以查询模块信息若删除或注释掉一个模块那个模块的功能就会禁用且httpd -M 查询不到 因此当我们需要用PHP时可以写入PHP的模块就能使用了 示例 LoadModule auth_basic_module modules/mod_auth_basic.so 6 、定义Main server 主站点 的文档页面路径 搜索/DocumentRoot 格式DocumentRoot /path 作用文档路径映射 DocumentRoot 指向的路径为URL 路径的起始位置 注意 ① 可以写多行但是下边的会覆盖上边的最后还是使用下边的写到子配置文件一样因为子配置文件Include conf.d/*.conf在这行设置的上边会被这行设置覆盖。 ② 若设置的主站点不存在那么服务会启动失败 示例 DocumentRoot /app/site1 http:/192.168.30.106/-- /app/site1/index.html 注意SELinux 和iptables 的状态要关掉 7、定义站点主页面 搜索:/DirectoryIndex 格式DirectoryIndex index.html index.html.var 分析 ① 查询http://192.168.30.106/ 及其子目录时不指定文件可以默认打开目录下的index.html文件 ② 若没有设置中的两个文件看其他设置下设置9默认是报错 有特定设置会显示特定设置如首页子配置文件 /etc/httpd/conf.d/welcome.conf 有设置若只有 / 或多个目录下没有index.html就显示报错页面welcome.conf这个设置优先级高安全 报错页面 8 、站点访问控制常见机制 可基于两种机制指明对哪些资源进行何种访问控制访问控制机制有两种客户端来源地址用户账号 ① 文件系统路径格式 Directory /path ... /Directory Files /path/file ... /Files FilesMatch PATTERN ... /FilesMatch 例主配置文件中不能访问 .ht 开头的文件的设置 ② URL 路径支持正则通配符 Location ... /Location LocationMatch ... /LocationMatch 例子配置文件/etc/httpd/conf.d/welcome.conf 的设置 注意支持正则通配符 示例 FilesMatch \.(gif|jpe?g|png)$ 正则 Files ?at.* 通配符 Location /status 绝对路径的目录 LocationMatch /(extra|special)/data 9 、Directory 中基于源地址实现访问控制 (1) Options 后跟1 个或多个以空白字符分隔的选项列表可在总配置文件中修改也可从创建一个自配置文件中修改设置 在选项前的 - 表示增加或删除指定选项 常见选项 Indexes 指明的URL 路径下不存在与定义的主页面资源相符的资源文件时返回索引列表给用户默认是不允许加上不安全有需要的时候例如做yum源的时候 FollowSymLinks 允许访问符号所指向的源文件例链接文件默认允许 None 全部禁用 All全部允许 注意若冲突后边的设置会覆盖前边的 子目录也可以设置的和父目录不一样放在下边 例vim /etc/httpd/conf.d/test.conf 子配置文件 (2) AllowOverride和上边实现的效果一样就是把设置放在目录的隐藏文件下.htaccess 与访问控制相关的哪些指令可以放在指定目录下的.htaccess由AccessFileName 指定文件中覆盖之前的.htaccess是主配置文件中设置指定的 用法vim /etc/httpd/conf.d/test.conf 只对directory 语句有效 AllowOverride All: 所有指令都有效 AllowOverride None .htaccess 文件无效 AllowOverride AuthConfig Indexes 除了AuthConfig和Indexes的其它指令都无法覆盖 然后在.htaccess文件中设置.htaccess放在所需要控制的目录下例bbs目录 vim /app/site1/.htaccess options indexes -followsymlinks (3) order 和allow 、deny在2.4中已无效有另外的权限控制 order 定义生效次序写在后面的表示默认法则覆盖优先级高 Order allow,deny Order deny,allow Allow from, Deny from 来源地址的表达方法IP、网络: 172.16 172.16.0.0 172.16.0.0/16 172.16.0.0/255.255.0.0 分析① 若不冲突allowdeny都产生效果例 ② 若冲突看谁在后在后的优先级高但是只限于冲突的 例除107这个网段的其他ip可以访问但这个网段以外都拒绝 ③ 没在deny、allow中设置的看allow/deny谁在后边谁优先级高 10 、日志设定 日志类型 访问日志 错误日志 错误日志 ErrorLog logs/error_log LogLevel warn loglevel 可选值: debug, info, notice, warn,error crit, alert, emerg 访问日志搜索:/LogForma 定义访问日志格式LogFormat format strings LogFormat %h %l %u %t \%r\ %s %b \%{Referer}i\ \%{User-Agent}i\ combined 下边有选择哪一个日志 使用日志格式 CustomLog logs/access_log combined 参考帮助 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 的值即从哪个页面中的超链接跳转至当前页面的 防止倒链i就是首部的意思 • %{User-Agent}i 请求报文中首部User-Agent 的值即发出请求的应用程序 帮助文档里都有 查询日志tail /var/log/httpd/access_log 11 、设定默认字符集 AddDefaultCharset UTF-8全球 默认 中文字符集GBK, GB2312中文简体, GB18030 12 、定义路径别名 格式 Alias /URL/ /PATH/ /URL/有没有都无所谓虚拟的目录 Alias /download/ /rpms/pub/ 例http://www.magedu.com/download/bash.rpm /rpms/pub/bash.rpm http://www.magedu.com/images/logo.png /www/htdocs/images/logo.png 13 、status 页面 这个功能需要status_module 模块 httpd -M | grep status 查询这个模块有没有被加载 在总配置文件中搜索/server-status LoadModule status_module modules/mod_status.so 这个模块在总配置文件有加载 Location /server-status 本来是注释掉的 SetHandler server-status2 这个名字随便写只要访问时用这个名字就行 Order allow,deny Allow from 192.168.30.0/24 /Location ExtendedStatus On 显示扩展信息默认也是注释的 显示状态页面 状态的类型 -等待连接 S启动 R处于读取状态 W发送应答 K保持长连接 Ddns查询 C正处于关闭状态 L记录日志 G优雅的终止温柔的断开 r把空闲的worker进程清理 .没有正常的进程 转载自http://www.cnblogs.com/along21/p/7691642.html 版权声明本文版权归作者和博客园共有欢迎转载但未经作者同意必须保留此段声明且在文章页面明显位置给出原文连接否则保留追究法律责任的权利。 不积跬步无以至千里 转载于:https://www.cnblogs.com/dannylinux/articles/7999156.html