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

[经验分享] Apache剖析———小枫原创

[复制链接]

尚未签到

发表于 2018-11-28 13:40:16 | 显示全部楼层 |阅读模式
首先我们简单安装一下apache
#tar zxvf httpd-2.2.9.tar.gz
#cd httpd-2.2.9
#./configure --prefix=/usr/local/apache
#make
#make install

/usr/local/apache/bin/apachectl start  成功启功这样简单的安装就OK了
-------------------------以上是前提---------------------------------------------------------

1. 查看版本
# /usr/local/apache/bin/apachectl -v
2.查看已编译好的模块
#/usr/local/apache/bin/apachectl -l
3.查看配置文件语法是否有错误
# /usr/local/apache/bin/apachectl -t
Sync OK证明没有错误

4. 指定pid路径
apache默认在logs目录下一启动apache就会在logs目录下生成一个httpd.pid
指定它,修改httpd.conf
此文件里加上  PidFile   lili/httpd.pid   可以用绝对路径定,这样写实际是在/usr/local/apache/lili这个目录下事先建好lili目录

5. 一些优化配置解析
#Timeout 300        若300秒后没有收到或送出数据就切断该连接
# KeepAlive Off      不使用保持连接功能,即客户一次请求连接只能响应一个文件,建议设置为On,即允许使用保持连接的功能
#MaxKeepAliveRequests 100   在使用保持连接功能时,设置客户一次请求连接能响应的最大上限
#KeepAliveTimeout 15    在使用保持连接功能时,两个相邻的连接的时间间隔超过15秒,就断开
#   设置使用prefork MPM运行方式的参数,此运行方式是Reh Hat默认的方式
#StartServers 8       设置服务器启动时运行的进程数
#MinSpareServers 5    Apache在运行时会根据负载的轻重自动调整空闲子进程的数目,若存在低于5个空闲子进程时,就创建一个新的子进程准备为客户提供服务。
#MaxSpareServers 20   若存在的空闲子进程高于20就创建逐一删除子进程来提高系统性能

#MaxClients 150       限制同一时间的连接数不能超过150
#MaxRequestsPerChild 1000   限制每个子进程在结束处理请求之前能处理的连接请求为1000
#Include conf.d/*.conf    目录下的所有以conf结尾的配置文件包含进来

#
LoadModule cgid_module modules/mod_cgid.so

当使用内置模块worker.c时动态加载cgid_module

#User          nobody
Group         nobody            设置运行apache服务器的用户和组

#ServerAdmin  root@localhost         设置apache服务器管理员的邮件地址
#   设置服务器根的访问权限
#Options FollowSymLinks       允许符号链接跟随,访问不在本目录下的文件。
#AloowOverride None          禁止读取.htaccess配置文件内容
#Order allow,deny       指定先执行允许,访问规则,再执行拒绝访问规则
#Allow from all          设置允许访问规则,允许所有链接
#
Options -Indexes
ErrorDocument 403 /error/noindex.html

对apache服务器根的访问不生成目录列表,同时指定错误输出的页面
#
UserDir disable

不允许每用户的服务器配置

#DirectoryIndex  index.php index.jsp index.html   当访问时依次查找的面页顺序
#AccessFileName  .htaccess   指定保护目录配置文件的名称
#
Order allow,deny
Deny from all

拒绝访问以.ht开头的文件,即保证.htaccess不被访问

#TypesConfig /etc/mime.types        指定负责处理MIME对应格式的配置文件的存放位置
#DefaultType text/plain             指定默认的MIME文件类型为纯文本或HTML文件。
#
MIMEMagicFile conf/magic

当mod_mime_magic.c模块被加载时,指定Magic信息码配置文件的存放位置

#HostnameLookups Off     只记录连接apache服务器IP的地址,而不记录主机名
#ErrorLog  logs/error_log  指定存放错误日志的位置
#LogLevel  warn   指定记录的错误信息的详细等级为warn级别
#CustomLog logs/access_log combined  指定访问日志位置和格式为combined(混合型)

#ServerSignature On    设置apache自己产生的页面中使用apache服务器版本的签名
#Alias /icons/ "/var/www/icons"  设置内容协商目录的访问别名
#
DAVLockDB /var/lib/dav/lockdb

指定DAV加锁数据库文件的存放位置
#ScripAlias /cgi-bin/ "/var/www/cgi-bin" 设置CGI目录的访问别名
#
Scriptsock run/httpd.cgid

由于Red Hat 中不使用worker MPM运行方式,所以不加载mod_cgid.c模块
#
AllowOverride None
Options None
Order allow,deny
Allow from all

设置CGI目录的访问权限
#AddDefaultCharset  ISO-8859-1    设置默认字符集
#AddCharset ISO-8859-1 .iso8859-1 .latln1...............  设置各种字符集
#AddType application/x-tar .tgz  添加新的MIME类型从而避免用户编辑/etc/mime.types
#AddHandler imap-file map
AddHandler type-map var
设置apache服务器对某些扩展名的处理方式

#AddOutputFilter INCLUDES .shtml   使用过滤器执行SSL
#Alias /error/  "/var/www/error/"   设置错误页面目录的别名
-------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------

配置Apache

1.基本配置
Apache默认已经配置好大部分功能,但根据用户的具体情况考虑来修改或添加其它基本指令。
1) KeepAlive   保持连接功能,即一次请求连接响应多个文件。将KeepAlive的值设置为on,可以提高访问性能
2) MaxClients 150  限制同一时间的连接不能超过150个。根据服务容量修改引值。
3) ServerAdmin root@localhost  设置apache服务器管理员的邮件地址
4) ServerName www.abc.com:80   首先删除其前面的“#”号,然后设置服务器的FQDN(完全合格的域名)
5) DirectoryIndex index.html index.html.var 访问服务器时依次查找的页面
6) IndexOptions  可以在此指令后添加FoldersFirst表示让目录列在前面(类似于资源管理器)

2.分割配置任务
Apache中分割配置任务的机制有两种方法,即Include和.htaccess文件.

1)使用Include指令
可以用Include指令将主配置文件分割,例子如把所有与虚拟主机相关的配置单独保存成一个配置文件,然后在主配置文件中包含进来。
例:#Include conf/extra/httpd-vhosts.conf  这个是主配置文件中的设置把注释去了就OK了,然后在conf/extra/目录下有个httpd-vhosts.conf文件.在这个文件里配置虚拟主机。

2) 使用.htaccess文件
  可以使用此文件改变主配置文件中的配置,但是它只能设置对.htaccess文件存放的目录的访问控制。与Include指令不同,此文件中的配置可以覆盖主配置文件中的配置,而使用Include指令只是将子配置文件简单地包含主配置文件之中。

何时使用.htaccess文件?
* 在多个用户之间分割配置
* 想在不重新启动服器的情况下改变服务器配置

注:在可以遥情况下尽量避免使用.htaccess文件,因为使用它会降低性能。

要使用.htaccess文件,必须经过以下两个配置步骤:
* 首先在主配置文件中启用并控制对.htaccess文件的使用。
** 然后在需要覆盖主配置文件的目录下生成.htaccess文件。

启动并控制使用.htaccess文件

1) 设置文件名称。必须保证在主配置文件中包含如下的配置语句:
AccessFileName   .htaccess

Order allow,deny

2) 控制在.htaccess文件中可以使用的指令组。要控制在.htaccess文件中可以使用的指令组,需在主配置文件中使用AllowOverride指令,可在AlowOverride指令所使用的指令组如下。
AuthConfig:进行认证、授权及安全的相关指令。如AuthDBMGroupFile、AuthDBMUserFile、AuthGroupFile、AuthName、AuthType、AuthUserFile及Require.
FileInfo: 控制文件处理方式的相关指令,如DefaultType、ErrorDocument、ForceType、LanguagePriority、SetHandler、SetInputFilter及SetOutputFilter。
Indexes:控制目录列表方式的相关指令,如AddDescription、AddIcon、AddIconByEncoding、AddIconByType、DefaultIcon、DirectoryIndex、FancyIndexing、HeaderName、IndexIgnore、IndexOptions及ReadmeName.
Limit:进行目录访问控制相关指令,如Allow、Deny及Order.
Options:启用不能在主配置文件中使用的各种选项,如Options、XBitHack.
All: 可以使用以上所有指令,如全部指令组
None: 禁止处理.htaccess文件。

4.生成.htaccess文件
当在主配置文件中配置了对.htaccess文件的启用和控制之后,接下来就可以在需要覆盖主配置文件的目录下生成.htaccess文件。.htaccess文件中可以使用的配置指令取决于主AllowOverride指令的设置

5. 使用.htaccess文件举例

1)首先在文档根目录下生成一个private目录,并创建测试文件:
cd /var/www/html
mkdir private
cd private
touch test
2) 修改主配置文件:
vi /etc/httpd/conf/httpd.conf
添加

AllowOverride Options

3)重启服务
service httpd restart
4)在/var/www/html/private目录下生成.htaccess文件
vi /var/www/html/private/.htaccess
添加配置语句
Options -Indexes

注:对.htaccess文件的修改不需要重启服务就可生效.

*************************************************************************************************
*************************************************************************************************
配置每个用户的Web站点

需求:为了让安装了apache的本地计算机上,拥有用户账号的每个用户都能够架设自己单独的Web站点,就有必要配置每个用户的Web站点.

配置每个用户的Web站点,需经以下两步

1. 修改主配置文件启用每个用户的Web站点配置
2. 修改主配置文件为每个用户的Web站点目录配置访问控制.

例: 1.修改配置文件
  vi /etc/httpd.conf/httpd.conf
修改以下部分的配置:
  基于安全考虑,禁止root用户使用自己的个人站点
  UserDir disable root
  UserDir public_html

设置每个用户Web站点目录的访问权限,将下面配置行前的"#"去掉

  AllowOverride FileInfo AuthConfig Limit
  Options MultiViews Indexes SymLinksIfOwneMatch IncludesNoExec

  Order allow,deny
  Allow from all


  Order deny,allow
  Deny from all



重启httpd
service httpd restart

查看当前用户
whoami
lili
cd  回到lili的家目录
mkdir publi_html
cd ..
chmod 711 lili
cd lili/public_html
vi index.html
this is lili's Space!
客户端访问 http://IP/~lili  返回页面为 this is lili's Space!

未完待续........................





运维网声明 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-640792-1-1.html 上篇帖子: apache 配置 php+mysql 下篇帖子: 七、配置apache
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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