网站建设的必要性及意义,北京展板设计制作公司,福州网站设计大概多少钱,阿里云com域名注册apache配置文件详解与优化 一、总结 一句话总结#xff1a;结合apache配置文件中的英文说明和配置详解一起看 1、apache模块配置用的什么标签#xff1f; IfModule 例如#xff1a; IfModule dir_moduleDirectoryIndex index.html 索引文件 首页文件#xff08;首页…apache配置文件详解与优化 一、总结 一句话总结结合apache配置文件中的英文说明和配置详解一起看 1、apache模块配置用的什么标签 IfModule 例如 IfModule dir_module DirectoryIndex index.html 索引文件 首页文件首页文件可以有多个可以用空格匹配多个 /IfModule 2、apache的目录配置用什么标签 Directory 例如 Directory / 根目录以下是对根目录的限制 Options FollowSymLinks FollowSymLinks表示允许符号链接没加选项表示禁止如不允许目录浏览等 AllowOverride None 表示禁止用户对目录配置文件.htaccess进行修改重载普通站点目录此项建议不开启 Order deny,allow 允许未被明确拒绝的 从后往前读 Deny from all 拒绝所有访问 /Directory 3、apache虚拟主机配置文件 httpd-vhosts.conf VirtualHost 虚拟主机配置文件 httpd-vhosts.conf egrep -v ^.*#|^$ httpd-vhosts.conf NameVirtualHost *:80 表示基于名称的虚拟主机配置*表示监听本机的所有IP地址可以更改为具体的IP地址 VirtualHost *:80 定义一个虚拟主机*表示监听本机的所有IP地址可以更改为具体的IP地址 ServerAdmin webmasterdummy-host.example.com 配置管理员的邮箱 DocumentRoot /applications/apache2.2.31/docs/dummy-host.example.com 提供服务的程序目录也成站点目录如果不配置则去主配置文件中寻找 ServerName dummy-host.example.com 提供服务的域名测试需要在本机做hosts解析 ServerAlias www.dummy-host.example.com 虚拟主机的别名也就是配置多个域名访问同一个站点此功能需要apache mod_alias模块的支持 ErrorLog logs/dummy-host.example.com-error_log 配置错误日志的路径 CustomLog logs/dummy-host.example.com-access_log common 配置访问日志一般用combined格式代替common格式以获得更多的格式输出 /VirtualHost 虚拟主机的结尾 4、apache配置扩展文件目录 httpd apache 扩展配置文件Include 调用文件在 /appacation/apache/conf/extra 下不开启就是默认配置。 extra/ ├── httpd-autoindex.conf ├── httpd-dav.conf dav支持配置 ├── httpd-default.conf 配置的是apache的相关服务参数如超时时间保持连接时间等 ├── httpd-info.conf ├── httpd-languages.conf 语言支持模式 ├── httpd-manual.conf ├── httpd-mpm.conf 服务器池管理也就是优化apache的一个配置文件选择apache的模式以及配置连接数等常用的模式有worker模式和profork模式默 认情况是profork模式 ├── httpd-multilang-errordoc.conf ├── httpd-ssl.conf 支持ssl加密的文件 ├── httpd-userdir.conf └── httpd-vhosts.conf 虚拟主机的配置文件 5、apache站点目录配置 Directory Directory /applications/apache2.2.31/htdocs 站点目录以下为默认站点目录的限制如果读者私自配置了站点目录而没有配置这里就会出现 403错误 Options Indexes FollowSymLinks FollowSymLinks表示允许符号链接indexes表示允许目录浏览如允许目录浏览允许符号链接 这里很危险应禁止目录浏览 应更改为 Options FollowSymLinks或Options -Indexes FollowSymLinks AllowOverride None 表示禁止用户对目录配置文件.htaccess进行修改重载 尽量不开启.htaccess 安全隐患大规则多了网站访问性能低 Order allow,deny 拒绝未被明确允许的 从后往前读 Allow from all 所有人都能访问 /Directory 6、错误页面优雅显示 主配置文件 ErrorDocument 支持url、文件和脚本的形式。 配置方法 在主配置文件 写入 ErrorDocument 404 /http://www/51cto.com 或者 ErrorDocument 404 /missing.html 7、修改apache的并发量等设置默认apahce的并发量是150 httpd-mpm 修改httpd.conf 打开Include conf/extra/httpd-mpm.conf 模块 Apachef服务为worker模式的配置 vim /conf/extra/httpd-mpm.conf IfModule mpm_worker_module StartServers 5 MaxClients 2000 ServerLimit 25 MinSpareThreads 50 MaxSpareThreads 200 ThreadLimit 200 ThreadsPerChild 100 MaxRequestsPerchild 0 /IfModule 注 MaxClients ServerLimit * ThreadsPerChild Apache服务为prefork模式的配置 生产环境配置文件 httpd-default.conf并发连接数配置 vim conf/extra/httpd-mpm.conf StartServers 10 MinSpareServers 10 maxSpareServers 15 ServerLimit 2000 MaxClients 2000 MaxRequestsPerChild 10000 修改完并发数后要stop apache 再start apache restart和graceful是不管用的 可能是bug worker模式 提升并发数可以达到4500网友测试结果 编译安装时使用worker模式 8、mod_expires 缓存功能 访问速度 带宽成本 通过设置expires header 来缓存如图片脚本cssflash等expires其实就是通过header报文来指定特定类型的文件在浏览器中的缓存时间大多数的图片flash在发布后都是不需要经常修改的做了缓存以后这样浏览器就不会再从服务器下载这些文件而是直接从缓存中读取 优点 1加大访问页面的速度 2提升用户体验 3节约网站带宽成本 4节约网站服务器及维护成本 ifmodule mod_expires.c ExpiresActive on ExpiresDefault access plus 12 month ExpiresByType test/html access plus 12 months ExpiresByType test/scc access plus 12 months ExpiresByType image/gif access plus 12 months ExpiresByType image/jpeg access plus12 12 months ExpiresByType image/jpg access plus 12 months ExpiresByType image/png access plus 12 months EXpiresByType application/x-shockwave-flash access plus 12 months EXpiresByType application/x-javascript access plus 12 months ExpiresByType video/x-flv access plus 12 months /ifmodule expires失效条件用户主动删除和内容缓存期已到 如果网站更新功能或者更新文件用户访问时的内容还是旧的 1.一般将经常变化的设置时间短 如1-30天 2.在更新文件上采取策略如更新后使用新的文件名发布这样对用户又是新的资源了 9、避免使用.htaccess文件 性能 安全 首先是性能的考虑如果AllowOverride启用了.htaccess文件则Apache需要在每个目录中查找.htaccess文件另外对每一个请求都需要读取一次.htaccess文件因此会导致性能的下降。 其次是安全这样会允许用户自己修改服务器的配置这可能导致某些意想不到的修改所以请认真考虑是否应当给予用户这样的特权 AccessFileName .htaccess 建议设置成 #AccessFileName .htaccess 全部目录权限定义使用httpd.conf中的定义不使用.htaccess. 10、apache程序架构优化 功能分离 1.程序页面服务器和 图片附件服务器、上传服务器 三者的功能尽量分离 2.分离最佳的方式是分别使用独立的服务器需要程序的支持 3.次选方案是在前端负载均衡器通过haproxy/nginx 根据目录或者扩展名请求后面的对应服务器 11、apache的防盗链功能 防盗链 自己所有的图片不允许嵌套在别人的网页里面 12、apache目录文件权限的设置 属组root 目录755文件644 chmod 在网站架构中应该把资源文件包括用户上传的图片附件等和程序分离最好把上传的程序也分离这样就可以从容的授权了。 一般的公司授权 chmod -R 777 /sitedir chown -R apache.apache /sitedir 都不安全 13、屏蔽apache版本等敏感信息 减少攻击 httpd-default.conf 客户访问时不知道用的是什么版本的服务器减少攻击 修改httpd-default.conf文件ServerSignature off 和ServerTokens Prod 之后 apachectl graceful 使之生效 但还是会出现serverApache 字样如果想全部屏蔽则需要从新编译 二、apache配置文件详解和优化 1、apache配置文件详解 [rootlocalhost conf]# egrep -v ^.*#|^$ httpd.conf ServerRoot /applications/apache2.2.31 apache的根目录安装目录应该只能root登录不需更改此配置 #listen 12.34.56.78:80 监听指定IP和端口 Listen 80 监听的端口 如果同时监控81端口可以在下面增加一行如:listen 81 #Dynamic Shared Object (DSO) Support 动态共享对象支持 DSO编译模块 IfModule !mpm_netware_module 专用的用户和组来运行httpd,即apache在运行时以此用户的身份启动服务和读取文件 IfModule !mpm_winnt_module User daemon apache的用户默认为daemon建议修改下 如oldboy Group daemon apache的用户组默认为daemon建议修改下 如oldboy ServerAdmin youexample.com 服务管理员邮箱地址出问题时发送邮件到这个邮箱 #ServerName www.example.com:80 初启动时报的错就是因为这里更改这里就不会报错 通常配置成127.0.0.1 DocumentRoot /applications/apache2.2.31/htdocs apache默认的站点目录路径结尾不要添加斜线 Directory / 根目录以下是对根目录的限制 Options FollowSymLinks FollowSymLinks表示允许符号链接没加选项表示禁止如不允许目录浏览等 AllowOverride None 表示禁止用户对目录配置文件.htaccess进行修改重载普通站点目录此项建议不开启 Order deny,allow 允许未被明确拒绝的 从后往前读 Deny from all 拒绝所有访问 /Directory Directory /applications/apache2.2.31/htdocs 站点目录以下为默认站点目录的限制如果读者私自配置了站点目录而没有配置这里就会出现 403错误 Options Indexes FollowSymLinks FollowSymLinks表示允许符号链接indexes表示允许目录浏览如允许目录浏览允许符号链接 这里很危险应禁止目录浏览 应更改为 Options FollowSymLinks或Options -Indexes FollowSymLinks AllowOverride None 表示禁止用户对目录配置文件.htaccess进行修改重载 尽量不开启.htaccess 安全隐患大规则多了网站访问性能低 Order allow,deny 拒绝未被明确允许的 从后往前读 Allow from all 所有人都能访问 /Directory IfModule dir_module DirectoryIndex index.html 索引文件 首页文件首页文件可以有多个可以用空格匹配多个 /IfModule FilesMatch ^\.ht 阻止.htaccess 和 .htpasswd等重要文件被web用户查看 Order allow,deny Deny from all Satisfy All /FilesMatch ErrorLog logs/error_log 错误日志路径 LogLevel warn 日志的级别 警告 IfModule log_config_module LogFormat %h %l %u %t \%r\ %s %b \%{Referer}i\ \%{User-Agent}i\ combined 日志的格式 LogFormat %h %l %u %t \%r\ %s %b common 普通访问日志格式 IfModule logio_module LogFormat %h %l %u %t \%r\ %s %b \%{Referer}i\ \%{User-Agent}i\ %I %O combinedio /IfModule 默认站点访问日志配置 CustomLog logs/access_log common 访问日志路径 common #CustomLog logs/access_log combined 访问日志路径 combined 复合日志 /IfModule 以下为cgi的配置没有特殊需求应考虑全部注释或者删掉 IfModule alias_module ScriptAlias /cgi-bin/ /applications/apache2.2.31/cgi-bin/ cgi的别名 基本不用了可以删除和注释掉 /IfModule IfModule cgid_module /IfModule Directory /applications/apache2.2.31/cgi-bin cgi目录 基本不用了可以删除和注释掉 AllowOverride None Options None Order allow,deny Allow from all /Directory DefaultType text/plain DefaultType定义当不能确定MIME类型时服务器提供的默认MIME类型默认不更改 如果你的服务器主要包含text 或者HTML文档“text/plain” 是一个好的选择 IfModule mime_module 允许传送时使用以下几种压缩方式 TypesConfig conf/mime.types AddType application/x-compress .Z AddType application/x-gzip .gz .tgz /IfModule # Some examples: 出现不同的错误跳转的指定页面 #ErrorDocument 500 The server made a boo boo. #ErrorDocument 404 /missing.html #ErrorDocument 404 /cgi-bin/missing_handler.pl #ErrorDocument 402 http://www.example.com/subscription_info.html 以下是开启一些包含文件的配置 # Server-pool management (MPM specific) #Include conf/extra/httpd-mpm.conf # Multi-language error messages #Include conf/extra/httpd-multilang-errordoc.conf # Fancy directory listings #Include conf/extra/httpd-autoindex.conf # Language settings #Include conf/extra/httpd-languages.conf # User home directories #Include conf/extra/httpd-userdir.conf # Real-time info on requests and configuration #Include conf/extra/httpd-info.conf # Virtual hosts #Include conf/extra/httpd-vhosts.conf 开启虚拟主机的配置 # Local access to the Apache HTTP Server Manual #Include conf/extra/httpd-manual.conf # Distributed authoring and versioning (WebDAV) #Include conf/extra/httpd-dav.conf IfModule ssl_module SSLRandomSeed startup builtin SSLRandomSeed connect builtin /IfModule apache 扩展配置文件Include 调用文件在 /appacation/apache/conf/extra 下不开启就是默认配置。 extra/ ├── httpd-autoindex.conf ├── httpd-dav.conf dav支持配置 ├── httpd-default.conf 配置的是apache的相关服务参数如超时时间保持连接时间等 ├── httpd-info.conf ├── httpd-languages.conf 语言支持模式 ├── httpd-manual.conf ├── httpd-mpm.conf 服务器池管理也就是优化apache的一个配置文件选择apache的模式以及配置连接数等常用的模式有worker模式和profork模式默 认情况是profork模式 ├── httpd-multilang-errordoc.conf ├── httpd-ssl.conf 支持ssl加密的文件 ├── httpd-userdir.conf └── httpd-vhosts.conf 虚拟主机的配置文件 虚拟主机配置文件 httpd-vhosts.conf egrep -v ^.*#|^$ httpd-vhosts.conf NameVirtualHost *:80 表示基于名称的虚拟主机配置*表示监听本机的所有IP地址可以更改为具体的IP地址 VirtualHost *:80 定义一个虚拟主机*表示监听本机的所有IP地址可以更改为具体的IP地址 ServerAdmin webmasterdummy-host.example.com 配置管理员的邮箱 DocumentRoot /applications/apache2.2.31/docs/dummy-host.example.com 提供服务的程序目录也成站点目录如果不配置则去主配置文件中寻找 ServerName dummy-host.example.com 提供服务的域名测试需要在本机做hosts解析 ServerAlias www.dummy-host.example.com 虚拟主机的别名也就是配置多个域名访问同一个站点此功能需要apache mod_alias模块的支持 ErrorLog logs/dummy-host.example.com-error_log 配置错误日志的路径 CustomLog logs/dummy-host.example.com-access_log common 配置访问日志一般用combined格式代替common格式以获得更多的格式输出 /VirtualHost 虚拟主机的结尾 2、apache优化 一、日志轮询 1.使用cronolog进行日志轮询.之所以不使用系统自带的rotatelogs是因为切割日志时丢失日志。 2.使用复合日志combined显示会多一些。 3.配置cronolog日志轮询时要写全路径如 Customlog“|/usr/local/sbin/cronolog /application/apache/logs/access_www_%Y%m%d.log” combined 二。错误页面优雅显示 支持url、文件和脚本的形式。 配置方法 在主配置文件 写入 ErrorDocument 404 /http://www/51cto.com 或者 ErrorDocument 404 /missing.html 三、mod_deflate 文件压缩功能压缩发送给客户端的内容 以DSO方式安装 /application/apache/bin/apxs -i -c -a mod_deflate.c 把文件先在服务器端进行压缩然后再传输在客户端再进行解压。没特殊情况所有文本内容都应该是gzip压缩。 把以下内容放在虚拟主机当中就实现的压缩功能 ifmodule mod_defalte.c DeflateCompressionlevel 9 #压缩等级等级也大压缩比例越高相反耗CPU也高 SetOutputFilter DEFLATE #启用压缩 #DeflateFilterNote Input instream #在日志中放置压缩率标记 #DeflateFilterNore Output outstream #在日志中放置压缩率标记 AddOutputFilterByType DEFLATE text/html text/plain text/xml #以下三行设置压缩的类型 AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE text/css #DeflateFilterNote Ratio ratio #在日志中放置压缩率标记下面是记录日志的这个功能一般不用所以注释掉了 #LogFormat %r %{outsream}n/%{instream}n (%{ratio}n%%) deflate #Customlog logs/deflate_log.log deflate /ifmodule 使用curl命令头部信息会出现一行Vary: Accept-Encoding 表示已经压缩 四、mod_expires 缓存功能 通过设置expires header 来缓存如图片脚本cssflash等expires其实就是通过header报文来指定特定类型的文件在浏览器中的缓存时间大多数的图片flash在发布后都是不需要经常修改的做了缓存以后这样浏览器就不会再从服务器下载这些文件而是直接从缓存中读取 优点 1加大访问页面的速度 2提升用户体验 3节约网站带宽成本 4节约网站服务器及维护成本 ifmodule mod_expires.c ExpiresActive on ExpiresDefault access plus 12 month ExpiresByType test/html access plus 12 months ExpiresByType test/scc access plus 12 months ExpiresByType image/gif access plus 12 months ExpiresByType image/jpeg access plus12 12 months ExpiresByType image/jpg access plus 12 months ExpiresByType image/png access plus 12 months EXpiresByType application/x-shockwave-flash access plus 12 months EXpiresByType application/x-javascript access plus 12 months ExpiresByType video/x-flv access plus 12 months /ifmodule expires失效条件用户主动删除和内容缓存期已到 如果网站更新功能或者更新文件用户访问时的内容还是旧的 1.一般将经常变化的设置时间短 如1-30天 2.在更新文件上采取策略如更新后使用新的文件名发布这样对用户又是新的资源了 五、更改apache的默认用户 编译安装apache的用户是daemon yum安装apache的用户的apache 尽可能的将用户改名最好用大家都不知道用户名 六、worker模式 提升并发数可以达到4500网友测试结果 编译安装时使用worker模式 七、屏蔽apache版本等敏感信息 客户访问时不知道用的是什么版本的服务器减少攻击 修改httpd-default.conf文件ServerSignature off 和ServerTokens Prod 之后 apachectl graceful 使之生效 但还是会出现serverApache 字样如果想全部屏蔽则需要从新编译 八、apache目录文件权限的设置 属组root 目录755文件644 在网站架构中应该把资源文件包括用户上传的图片附件等和程序分离最好把上传的程序也分离这样就可以从容的授权了。 一般的公司授权 chmod -R 777 /sitedir chown -R apache.apache /sitedir 都不安全 九、修改apache的并发量等设置默认apahce的并发量是150 修改httpd.conf 打开Include conf/extra/httpd-mpm.conf 模块 Apachef服务为worker模式的配置 vim /conf/extra/httpd-mpm.conf IfModule mpm_worker_module StartServers 5 MaxClients 2000 ServerLimit 25 MinSpareThreads 50 MaxSpareThreads 200 ThreadLimit 200 ThreadsPerChild 100 MaxRequestsPerchild 0 /IfModule 注 MaxClients ServerLimit * ThreadsPerChild Apache服务为prefork模式的配置 生产环境配置文件 httpd-default.conf并发连接数配置 vim conf/extra/httpd-mpm.conf StartServers 10 MinSpareServers 10 maxSpareServers 15 ServerLimit 2000 MaxClients 2000 MaxRequestsPerChild 10000 修改完并发数后要stop apache 再start apache restart和graceful是不管用的 可能是bug 十、apache的防盗链功能 自己所有的图片不允许嵌套在别人的网页里面 十一、禁止目录Indexes 删除Indexes 或者Indexes前加- 十二、禁止用户重载 AllowOverride Nore 十三、关闭CGI 删除或者关闭CGI 十四、避免使用.htaccess文件 首先是性能的考虑如果AllowOverride启用了.htaccess文件则Apache需要在每个目录中查找.htaccess文件另外对每一个请求都需要读取一次.htaccess文件因此会导致性能的下降。 其次是安全这样会允许用户自己修改服务器的配置这可能导致某些意想不到的修改所以请认真考虑是否应当给予用户这样的特权 AccessFileName .htaccess 建议设置成 #AccessFileName .htaccess 全部目录权限定义使用httpd.conf中的定义不使用.htaccess. 十七、apache日志授予root 700权限 十八、内核优化 系统优化 十九、apache程序架构优化 1.程序页面服务器和 图片附件服务器、上传服务器 三者的功能尽量分离 2.分离最佳的方式是分别使用独立的服务器需要程序的支持 3.次选方案是在前端负载均衡器通过haproxy/nginx 根据目录或者扩展名请求后面的对应服务器 参考apache配置文件详解和优化 - zypzilong的博客 - CSDN博客https://blog.csdn.net/zypzilong/article/details/77765429 0 Links 转载于:https://www.cnblogs.com/Renyi-Fan/p/9976867.html