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

[经验分享] Apache服务器高级设置指南

[复制链接]

尚未签到

发表于 2017-1-6 10:50:24 | 显示全部楼层 |阅读模式
function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}




转自《软件世界》http://www.swm.com.cn作了部分修改。
一、安装

RedHat默认的是/etc/httpd,配置文件在/etc/httpd/conf目录下,页面文件在/home/httpd目录下。
若是windows2000,请参见我的上篇原创文章http://www.xtong.com.cn/robornet/docs/Apache2_Tomcat4.txt。

二、设置httpd.conf、srm.conf、access.conf文件

  Apache安装成功后,在conf子目录下有四个文件:httpd.conf、srm.conf、access.conf、magic。
httpd.conf是Apache设置文件中的主文件,httpd程序启动时会先读取httpd.conf。
srm.conf是数据配置文件,在这个文件中主要设置WWWServer读取文件的目录、目录索引时的画面、CGI执行时的目录等等。
access.conf是负责基本的读取文件控制,限制目录所能执行的功能及访问目录的权限设置。

//说明:Apache2安装成功后只有三个配置文件:httpd.conf、magic、mime.types

  下面将简单对这三个数据设置文件进行说明。

httpd.conf文件:

  TransferLog:如果你想知道你的网站上哪个页面最受来访者的欢迎,在一段时间内有多少人访问你的站点,你当然可以设置
一个计数器,但每页都设计数器,太繁琐而且得到的结果不太可靠。最好的办法是查看相应log文件,TransferLog
命令就是指定当浏览器要求服务器传送文件时记录到所设置的文件,可以根据此文件查看有哪些用户看过哪些HTML
文件。可用一些程序分析这个文件的数据,得出监测各种有用的数据。默认的访问log文件是logs/access_log。
  ErrorLog:这个命令是指定当WWWServer运转过程中发生问题时错误信息存放到哪个文件。默认是logs/error_log。
 VirtualHost:这个命令是用来设置虚拟主机,即用一台主机执行多个域名的WWWServer。详细命令使用将在第三部分详细解释。
*********:其它命令附后。

srm.conf文件:

  DocumentRoot:指定WWWServer存放html文件的根目录。WWWServer从硬盘中读取html文件传送给浏览器,并不是可从任一个目录
中读取文件,而是从一个特定目录中开始读取文件,这个特定的目录就是由DocumentRoot命令来指定。redhat5.2
中默认的目录是/home/httpd/html。如果用户访问http://www.swm.com.cn/netlife/index.html,此时WWWServer
并不是从系统的根目录下的netlife目录中读取index.html,而是从/home/httpd/html/netlife目录中读取index.html文件。
UserDir:如果要在WWWServer上给一些用户开设空间,搁放个人主页,最好不要把每个人的html文件都放到DocumentRoot目录中,
用UserDir命令可让每个人的页面放置在自己的home目录中。默认的目录是public_html。如果UserDir设置的目录是public_html,
而Username是yan,而该user的home目录是/home/yan,那你访问http://www.swm.com.cn/~yan/intr.html时所看到的intr.html
文件存放在/home/yan/public_html中,而不是/home/httpd/html。

access.conf文件:

 如果你有些目录只想让某些人访问,或者只允许在特定的目录下允许CGI程序,这时就要对access.conf进行修改。Apache的存取控制方式
有两种:一是"整体存取控制",只通过access.conf来控制文件的设置,来限定目录所能执行的功能及存取目录的权限设置。
二是"特定目录存取控制",在特定目录中建立存取设置文件,这个文件名在srm.conf中的AcessFileName来决定,默认是.htaccess。
例如某些目录中的文件只允许某些人访问,那可在该目录下建立.htaccess文件,当WWWServer读取该目录时便会自动读取.htaccess
来决定是否读取执行或要求口令验证。这两种方式所使用的命令几乎相同,而且设置的格式也相同。 

  Directory:说明要设置的目录,然后再用命令来设置目录的功能和权限。
  Options:设置目录可以执行哪些功能。有None、All、ExecCGI、Includes、Indexs、IncludesNoExec、FollowSymlink、SymlinksOwnerMatch
等选项。如果想让某个目录可以执行CGI程序,那么应在Options命令中加上ExecCGI选项。
  Require:设置可以对所指定目录以指定方式来存取的Users和Group。该命令执行后,当读取该目录数据时,系统会要求输入Username和Password。

 
忠告:修改完设置文件后,不要像在Windows工作那样,重启机器使其生效。要记住,你现在linux下,使用linux的好处之一就是不用再见到Windows98
那死机时的蓝屏以及不必对配置文件做了一点点修改就无聊而又频繁地重启机器。你的WWW服务器任何时候都有很多人在访问,频繁地重启机器将
把你的客人赶跑。要学会不重启机器,而是重新启动一个正执行的程序(Process,严格一点应叫做进程、作业)。可以用kill命令来使程序重新
启动。具体kill的使用参见有关文档。

  先用ps命令查看httpd的pid号,然后用kill命令杀死它,重新启动httpd。具体命令如下:

   linux>ps-x
    linux>kill-HUP13668//13668是假设httpd的pid号,在实际使用中,不同的情况值也不同

  再将httpd重新启动,使修改的配置文件生效。


三、虚拟主机(VirtualHost)的设置

 作为系统管理员,若你只有一个IP地址,却有好几个域名,又要求访问每个域名都要看到不同的内容,那怎么办?总不至于为每个域名都配上一台服务器吧。
这就要采用虚拟主机(VirtualHost)技术,幸好Apache就支持这种功能。虚拟主机有两种方式:IP-Based(基于IP式)、Name-based(基于域名式)。
IP-Based指的是一个域名对应一个IP地址,而Name-based指的是多个域名对应一个IP地址。

  虚拟主机的设置并不复杂,只要在httpd.conf文件中加入相应的命令就行。

  下面是一个Name-based(基于域名式)虚拟主机的httpd.conf例子,假定IP为:192.168.188.20,两个域名分别是long.com.cn、short.com.cn。

httpd.conf:
.......
<NameVirtualHost192.168.188.20>
ServerAdminwebmaster@long.com
ServerNamewww.long.com
DocumentRoot/home/httpd/long/html 
ErrorLoglogs/error_log
TransferLoglogs/access_log

ServerAdminwebmaster@short.com
ServerNamewww.short.com
DocumentRoot/home/httpd/short/html
ErrorLoglogs/short.com-error_log
TransferLoglogs/short.com-access_log
</NameVirtualHost>
.......

说明:NameVirtualHost命令指定在哪个IP上设置虚拟主机;ServerAdmin命令是设定当WWWServer执行有问题时,会将ServerAdmin所设置的E-mail
传送到浏览器,让使用者用该E-mail与系统管理员联系;ServerName命令是设置WWWServer的域名;DocumentRoot命令设置本虚拟主机的本地目录。

四、提供个人主页空间、用户homepage的设定

  给用户开放个人主页空间,一是要确定用户主页的存放目录,二是开放用户主页目录的读取权限。

  方法一:
  你以root的身份给用户chen开个帐号,系统自动会给chen分配一空间/home/user,而后在/home/chen的目录下建一public_html的子目录,
子目录的属性要设成other可读和可执行的。接着修改access.conf。在文件的最后加上以下一段:
    AllowOverrideNone
    orderallow,deny
  allowfromall
     而后,重新运行httpd,用户就可以通过http://www.swm.com.cn/~chen/访问chen的个人主页。
这种方法的优点是方便,缺点是安全性太差。

  方法二:
  在/home/httpd目录下为用户chen建个目录chen。修改srm.conf中的UserDir为/home/httpd/*/html,接着重新运行httpd便可以了。


附1:apache的httpd.conf文件设置常用命令详解

ServerTypestandalone
  #设置服务器的形式是单独启动(standalone),还是借由互联网络伺服程序inetd来启动。一般使用前者。

  ServerRoot"/usr/local/apache"
  #设置服务器的Home目录,用来存放服务器的设置文件、错误文件、记录文件。

  PidFilelogs/httpd.pid
  #程序启动时,把父进程httpd的进程号(processid)存在这个文件中。这个文件名可以配合PidFile指令加以改变。

  ScoreBoardFilelogs/apache_status
  #设置网络上WWW服务器一些执行程序的记录文件。

  #ResourceConfigconf/srm.conf
  #AccessConfigconf/access.conf
  #这两个文件的内容已经包含在httpd.conf文件中了。

  Timeout300
  #如果客户端300秒还没有连上,或者服务器300秒还没有传送数据到客户端,就会自动断线。

  KeepAliveOn
  #设置是否支持续传功能。

  MaxKeepAliveRequests100
  #设置支持续传功能的数目。数目越多则浪费的硬盘空间越多。设置为0则不止持续传。

  KeepAliveTimeout15
  #如果该为使用者在15秒后还没有向服务器发出要求,则他在不能续传。

  MaxRequestsPerChild0
  #设置同时间内childprocess数目。

  ThreadsPerChild50
  #设置服务器使用进程的数目。

  #Listen3000
  #Listen12.34.56.78:80
  #允许使用其它的Port或IP访问服务器。此例中Port为3000,IP为12.34.56.78:80。

  #BindAddress*
  #设置Apache监听所有的IP,也可以具体的指定。

  #LoadModuleanon_auth_modulemodules/ApacheModuleAuthAnon.dll
  ……
  #打开当前未激活预定以的模块。

  #ExtendedStatusOn
  #设置服务器产生的状态信息。

  Port80
  #设置服务器使用的Port。

  ServerAdminyou@your.address
  #设置服务器管理者的E-Mail地址。

  #ServerNamenew.host.name
  #服务器的主机名。如果你有固定的IP地址,则不需要设置。

  DocumentRoot"/usr/local/apache/htdocs"
  #设置存放站点html文件的目录。

  
  OptionsFollowSymLinks
  AllowOverrideNone
  
  #设置/目录的指令。具体地说明:
  Option:定义在目录内所能执行的操作。
  None:表示只能浏览,
  FollowSymLinks:允许页面连接到别处,
  ExecCGI:允许执行CGI,
  MultiViews:允许看动画或是听音乐之类的操作,
  Indexes:允许服务器返回目录的格式化列表,
  Includes:允许使用SSI。这些设置可以复选。
  All:则可以做任何事,但不包括MultiViews。
  AllowOverride:加None参数表示任何人都可以浏览该目录下的文件。
  另外的参数有:FileInfo、AuthConfig、Limit。

  UserDirpublic_html
  #定义使用者存放html文件的目录。

  DirectoryIndexindex.html
  #定义首先显示的文件。

  AccessFileName.htaccess
  #定义每个目录访问控制文件的名称。

  #CacheNegotiatedDocs
  定义代理服务器不要Cache你的页面。不建议使用。

  UseCanonicalNameOn
  #服务器使用ServerName指定的服务器名和Port指定的端口地址。


附2:常用Apache模块及其功能:

模块是Apache的组成部分,它为Apache内核增加新功能。模块配置行如下所示:AddModulemodules/standard/mod_env.o


模块名功能缺省
mod_access提供基于主机的访问控制命令y
mod_actions能够运行基于MIME类型的CGI脚本或HTTP请求方法y
mod_alias能执行URL重定向服务y
mod_asis使文档能在没有HTTP头标的情况下被发送到客户端y
mod_auth支持使用存储在文本文件中的用户名、口令实现认证y
mod_auth_dbm支持使用DBM文件存储基本HTTP认证n
mod_auth_mysql支持使用MySQL数据库实现基本HTTP认证n
mod_auth_anon允许以匿名方式访问需要认证的区域y
mod_auth_external支持使用第三方认证n
mod_autoindex当缺少索引文件时,自动生成动态目录列表y
mod_cern_meta提供对元信息的支持n
mod_cgi支持CGIy
mod_dir能够重定向任何对不包括尾部斜杠字符命令的请求y
mod_env使你能够将环境变量传递给CGI或SSI脚本n
mod_expires让你确定Apache在服务器响应请求时如何处理Expiresy
mod_headers能够操作HTTP应答头标y
mod_imap提供图形映射支持n
mod_include使支持SSIn
mod_info对服务器配置提供了全面的描述y
mod_log_agent允许在单独的日志文件中存储用户代理的信息n
mod_log_config支持记录日志y
mod_log_referer提供了将请求中的Referer头标写入日志的功能n
mod_mime用来向客户端提供有关文档的元信息y
mod_negotiation提供了对内容协商的支持y
mod_setenvif使你能够创建定制环境变量y
mod_speling使你能够处理含有拼写错误或大小写错误的URL请求n
mod_status允许管理员通过WEB管理Apachey
mod_unique_id为每个请求提供在非常特殊的条件下保证是唯一的标识n

运维网声明 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-324624-1-1.html 上篇帖子: java.lang.ClassNotFoundException: org.apache.axis2.transport.http.AxisServlet 下篇帖子: org.apache.commons.dbcp.BasicDataSource的解决方法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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