做外文翻译的网站,不会代码 怎么做网站,注册公司最少需要多少注册资金,住小帮装修案例一丶Apache常用目录详解1) /etc/httpd/conf/httpd.confhttpd.conf是Apache的主配文件#xff0c;整个Apache也不过就是这个配置文件#xff0c;里面几乎包含了所有的配置。有的distribution都将这个文件拆分成数个小文件分别管理不同的参数。但是主要配置文件还是以这个文件为…一丶Apache常用目录详解1) /etc/httpd/conf/httpd.confhttpd.conf是Apache的主配文件整个Apache也不过就是这个配置文件里面几乎包含了所有的配置。有的distribution都将这个文件拆分成数个小文件分别管理不同的参数。但是主要配置文件还是以这个文件为主。/etc/httpd/conf/logs链接到/var/log/httpd用于存放默认主服务器的日志文件/etc/httpd/conf/modules链接到/usr/lib64/httpd/modules用于存放所有httpd所能装载的DSO模块文件/etc/httpd/conf/run链接到/var/run/httpd用来存放主进程的PidFile。
2) /etc/httpd/conf.d/*.conf如果你不想要修改原始配置文件httpd.conf的话那么可以将你自己的额外参数文件独立出来注意以.conf结尾放在/etc/httpd/conf.d/目录下。重启Apache的时候这个配置文件就会被读入主配文件之中了。他的好处就是当你在进行系统升级的时候几乎不需要改动原本的配置文件只要将你自己的额外参数文件复制到正确的地点即可维护起来非常方便。3) /etc/httpd/modules/Apache支持很多的外挂模块例如PHP以及SSL都是Apache外挂的一种。所有你想要使用的模块文件默认是放置在这个目录当中的。4) /var/www/html/这个目录就是Apache默认的存放首页的目录默认是index.html网站根目录5) /var/www/error/当因为服务器设置错误或是浏览器要求的数据错误时在浏览器上出现的错误信息就以这个目录的默认信息为主6) /var/www/icons/这个目录提供Apache默认给予的一些小图示可以随意使用。7) /var/www/cgi-bin/默认给一些可执行的CGI网页程序程序放置的目录。8) /var/log/httpd/默认的Apache日志文件都放在这里对于流量比较大的网站来说这里的数据文件可能会非常大。9) /usr/sbin/apachectl这个就是Apache的主要执行文件这个执行文件其实就是一个Shell Script而已他可以主动地侦测系统上面的一些设置值好让你启动Apache时更简单一些。10) /usr/sbin/httpd这个是主要的Apache二进制执行文件。11) /usr/bin/htpasswd在当你想要登入某些网页时你需要输入帐号与密码那Apache本身就提供一个最基本的密码保护方式该密码的产生就是通过这个命令来实现的。Apache密码保护二丶Apache配置文件详解及优化(http.conf)ServerTokens OS //此参数告知客户端我们服务器的版本和操作系统而已不需要改动他如果不在乎你的系统信息被远程用户查询到则可以将这个项目注释掉不建议ServerRoot “/etc/httpd” //服务器设置的最顶层目录有点类似于chroot那种感觉。包括logs , modules等的数据都应该要放置在此目录下面如果这些配置没有声明成绝对路径的话PidFile run/httpd.pid //放置PID的文件可方便apache软件的管理。只有相对路径考虑ServerRoot设置值所以文件在/etc/httpd/run/httpd.pidTimeout 60 //不论接收或发送当持续连接等待超过60秒则该次连接就中断一般来说此数值在300秒左右即可不需要修改这个原始值KeepAlive on //最好把默认值”Off”修改为”On”表示是否允许持续性的连接也就是一个TCP连接可以具有多个文件资料传送的要求比如如果你的网页内含有很多图片文件那么这一次连接就会将所有的数据传送完而不必每一个图片都需要进行一次TCP连接。MaxKeepAliveRequests 100 //可以将默认的100改成500或更高与上一个设置的值KeepAlive有关当KeepAlive的值设置为On的时候这个数值可以决定该次连接能够传输的最大传输数量。为了提高效率则可以改大一点。0代表不限制KeepAliveTimeout 65 //在KeepAlive设置为”On”的情况下该次连接在最后一次传输后等待延迟的秒数,当超过该秒数的时候该连接中断。保持默认值即可如果设置的值太高等待时间较长在较忙碌的系统上面将会有较多的Apache程序占用资源可能有效率方面的问题。IfModule prefork.cStartServers 8 //启动Apache的时候唤醒几个PID来处理服务的。Apache使用了进程预派生的技术来处理请求大大提高了响应速度MinSpareServers 5 //最小预备使用的PID数量MaxSpareServers 20 //最大预备使用的PID数量ServerLimit 4096 //服务器的限制MaxClients 4096 //最多可以有多少个客户端同时连接到Apache最大的同时连接数量也就是process不会超过这一数值。这个MaxClients设置值可以控制同时连上www服务器的总连接要求数量也可以将其看作是最高实时在线人数。不过要注意的是这个值并非越大越好因为他会消耗物理内存与process有关所以如果你设置太高导致超出物理内存,能够容许的范围那么效率就会大大降低因为会跑SWAP此外MaxClients也在Apache编译的时候就指定最大值了所以你也无法超出系统最大值除非你重新编译Apache MaxRequestsPerChild 4000 //每个程序能够提供的最大传输次数要求。举例来说如果有个用户连上服务器之后要求数百个网页当他的要求数量超过这个值的时候则该程序会被丢弃另外切换一个新程序。这个设置可以有效地管理每个process在系统上存活的时间。根据观察所得新程序的效果较好。/IfModuleIfModule worker.c //MPM的另一个模型StartServers 8MaxClients 4000MinSpareThreads 25MaxSpareThreads 75ThreadsPerChild 75 //每个子进程的最大并发线程数MaxRequestsPerChild 0/IfModule上面的prefork和worker其实是两个MPM模型的参数可能会存在第三个模型event。默认的项目配置对于一般中小型网站来说已经很够用了网站的流量比较大可以修订一下里面的数值设置的数值越大代表系统会启动越多的程序来提供Apache的服务反映速度就比较快。Redhat和CentOS将这两个模块分别放到了不同的执行文件中分别是/usr/sbin/httpdprefork模块/usr/sbin/httpd.workerworker模块/etc/sysconfig/httpd 这个文件决定了Apache使用哪一个模块可以通过修改这个文件来切换不同的工作模式。参数HTTPD/usr/sbin/httpd.workerListen 80 //监听的端口如有多块网卡默认监听所有网卡LoadModule cgi_module modules/mod_cgi.soLoadModule version_module modules/mod_version.so //启动加载的模块,Apache提供了非常多的模块供我们使用Include conf.d/*.conf //加载的配置文件ServerAdmin rootlocalhost //系统管理员的邮箱当网站出现问题的时候错误信息会显示的联系邮箱ServerName www.example.com:80 //默认是不需要指定的服务器通过名字解析过程来获得自己的名字但如果解析有问题如反向解析不正确或者没有DNS名字也可以在这里指定IP地址当这项不正确的时候服务器不能正常启动。前面启动Apache时候提示正在启动 httpdhttpd: apr_sockaddr_info_get() failed forjustin httpd: Could not reliably determine the servers fully qualified domain name, using 127.0.0.1forServerName解决方法就是启动该项把www.example.com:80修改为自己的域名或者直接修改为localhostUseCanonicalName Off //如果客户端提供了主机名和端口Apache将会使用客户端提供的这些信息来构建自引用URL。这些值与用于实现基于域名的虚拟主机的值相同并且对于同样的客户端可用。CGI变量SERVER_NAME和SERVER_PORT也会由客户端提供的值来构建DocumentRoot “/var/www/html” //配置放置首页的目录Directory /Options FollowSymLinksAllowOverride None Order deny,allow /Directory //下面会有详细介绍例如Directory “/var/www/html” //使用Directory指定了一个绝对路径的目录Options -Indexes FollowSymLinks //Options目录参数,此设置值表示在这个目录内能够让Apache进行的操作也就是针对Apache的程序的权限设置。主要的参数值有Indexes如果在此目录下找不到首页文件默认为index.html时就显示整个目录下的文件名至于首页文件名则与DirectoryIndex设置的值有关建议注释掉IndexesFollowSymLinksFllow Symolic Links的缩写字面意义是让连接文件可以生效。首页的目录是在/var/www/html既然是WWW的根目录理论上就像被chroot一般。一般说来说被chroot的程序无法离开其目录也就是说默认的情况下你在/var/www/html下面的连接文件只要链接到非此目录的其他地方则该连接文件默认是失效的。但是使用这个设置可以让链接有效的离开本目录,默认为禁用ExecCGI让此目录具有执行CGI的权限非常重要。举例来说OpenWebMail使用了很多Perl程序你要让OpenWebMail可以执行就需要在该程序所在目录拥有ExecCGI的权限才行。但是要注意不要让所有的目录均可以使用ExecCGIIncludes让一些Server-Side Include程序可以运行。建议可以加上去MultiViews这个有点像是多国语言的支持与语言数据有关。在错误信息的回报内容中最常见在同一台主机中可以依据客户端的语言而给予不同的语言显示。默认在回报信息中存在你可以检查一下/var/www/error/目录下的数据。AllowOverride None:允许覆盖参数功能,表示是否允许额外配置文件.htaccess的某些参数覆盖。我们可以在httpd.conf内设置好所有的权限,不过这样一来若用户自己的个人网页想要修改权限时将会对管理员造成困扰。因此Apache默认可以让用户以目录下的.htaccess文件内覆盖Direcoty内的某些功能参数。这个项目则是在规定.htaccess可以覆盖的权限类型有哪些。常见的有以下几种
ALL全部的权限均可以覆盖AuthConfig仅有网页认证帐号与密码可以覆盖Indexes仅允许Indexes方面的覆盖Limits允许用户利用Allow、Deny与Order管理可浏览的权限None不可覆盖也就是让.htaccess文件失效
使用.htaccess会严重影响到Apache的性能如果不是特殊需要建议关闭Apache配置文件权限操作Apache内部的Order可以处理相关权限的限制其中有两个值Allow和DenyOrder deny,allow 可以理解为拒绝所有开放特定Order allow,deny 可以理解为开放所有拒绝特定当allow与deny中有重复的规则出现则最后一条的配置起到了决定性的作用,比如Order allow,deny //开放所有拒绝特定allow from all //定义了允许的规则开放所有deny 192.168.1.1 //定义了拒绝的规则拒绝了一个IP这个IP包含在第二行的all当中所以它的权限就默认由最后一行配置决定最后一行是deny所以1.1被被拒之门外/DirectoryDirectoryIndex jfedu.php index.html index.html.var //网站默认的首页文件的名称,如果上面的文件全部存在的话就会按照设置的顺序显示排在最前面的首页这个与之前在Option中谈到的Indexes有关。Files ~ ^\.ht Order allow,deny Deny from all Satisfy All /Files //不让用户查看.htpasswd和.htaccess这两个文件TypesConfig /etc/mime.types //用于设置保存有不同MIME(描述消息内容类型的因特网标准)类型数据的文件名DefaultType text/plain //默认的网页的类型IfModule mod_mime_magic.c # MIMEMagicFile /usr/share/magic.mime MIMEMagicFile conf/magic/IfModule //指定判断文件真实MIME类型功能的模块HostnameLookups Off //当打开此项功能时在记录日志的时候同时记录主机名这需要服务器来反向解析域名增加了服务器的负载通常不建议开启#EnableMMAP off //是否允许内存映射如果httpd在传送过程中需要读取一个文件的内容它是否可以使用内存映射。如果为on表示如果操作系统支持的话将使用内存映射。在一些多核处理器的系统上这可能会降低性能如果在挂载了NFS的DocumentRoot上如果开启此项功能可能造成因为分段而造成httpd崩溃#EnableSendfile off //这个指令控制httpd是否可以使用操作系统内核的sendfile支持来将文件发送到客户端。默认情况下当处理一个请求并不需要访问文件内部的数据时(比如发送一个静态的文件内容)如果操作系统支持Apache将使用sendfile将文件内容直接发送到客户端而并不读取文件ErrorLog logs/error_log //错误日志存放的位置LogLevel warn //Apache日志的级别LogFormat %h %l %u %t \%r\ %s %b \%{Referer}i\ \%{User-Agent}i\ combined LogFormat %h %l %u %t \%r\ %s %b common LogFormat %{Referer}i - %U referer LogFormat %{User-agent}i agent //定义了日志的格式并用不同的代号表示#CustomLog logs/access_log common CustomLog logs/access_log combined //说明日志记录的位置这里面使用了相对路径所以ServerRoot需要指出日志位置就存放在/etc/httpd/logsServerSignature On //定义当客户请求的网页不存在或者错误的时候是否提示apache的版本的一些信息Alias /icons/ /var/www/icons/ //定义一些不在DocumentRoot下的文件而可以将其映射到网页根目录中这也是访问其他目录的一种方法但在声明的时候切记目录后面加”/”IfModule mod_dav_fs.c # Location of the WebDAV lock database. DAVLockDB /var/lib/dav/lockdb/IfModule //对mod_dav_fs.c模块儿的管理ScriptAlias /cgi-bin/ /var/www/cgi-bin/ //对CGI模块儿的的别名与Alias相似# Redirect old-URI new-URL //Redirect参数是用来重写URL的当浏览器访问服务器上的一个已经不存在的资源的时候服务器返回给浏览器新的URL告诉浏览器从该URL中获取资源。这主要用于原来存在于服务器上的文档改变位置之后又需要能够使用老URL能访问到原网页IndexOptions FancyIndexing VersionSort NameWidth* HTMLTable CharsetUTF-8 AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip... IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t当一个HTTP请求的URL为一个目录的时候服务器返回这个目录中的索引文件如果目录中不存在索引文件并且服务器有许可显示目录文件列表的时候就会显示这个目录中的文件列表为了使得这个文件列表能具有可理解性而不仅仅是一个简单的列表就需要前这些参数。如果使用了IndexOptionsFancyIndexing选项可以让服务器针对不同的文件引用不同的图标。如果没有就使用DefaultIcon定义缺省图标。同样使用AddDescription可以为不同类型的文档介入描述AddLanguage ca .ca ...... AddLanguage zh-TW .zh-tw //添加语言LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW //Apache支持的语言AddDefaultCharset UTF-8 //默认支持的语言#AddType application/x-tar .tgz//支持的应用如果想支持对php的解析添加这样一行#AddEncoding x-compress .Z #AddEncoding x-gzip .gz .tgz //支持对以.Z和.gz.tgz结尾的文件AddType application/x-compress .Z AddType application/x-gzip .gz .tgz //添加对上述两种文件的应用#AddHandler cgi-script .cgi //修改为AddHandler cgi-script .cgi .pl 表示允许扩展名为.pl的CGI脚本运行AddType text/html .shtml AddOutputFilter INCLUDES .shtml //添加动态处理类型为server-parsed由服务器预先分析网页内的标记将标记改为正确的HTML标识#ErrorDocument 404 /missing.html //当服务器出现404错误的时候返回missing.html页Directory /var/www/error AllowOverride None Options IncludesNoExec AddOutputFilter Includes html AddHandler type-map var Order allow,deny Allow from all LanguagePriority en es de fr ForceLanguagePriority Prefer Fallback /Directory //对/var/www/error网页的权限及操作BrowserMatch Mozilla/2 nokeepalive BrowserMatch MSIE 4\.0b2; nokeepalive downgrade-1.0 force-response-1.0 BrowserMatch RealPlayer 4\.0 force-response-1.0 BrowserMatch Java/1\.0 force-response-1.0 BrowserMatch JDK/1\.0 force-response-1.0 .....设置特殊的参数以保证对老版本浏览器的兼容并支持新浏览器的特性#NameVirtualHost *:80 //如果启用虚拟主机的话必须将前面的注释去掉而且第二部分的内容都可以出现在每个虚拟主机部分。#VirtualHost *:80 //标签后面的IP定义一定要和上面NameVirtualHost定义的一致# ServerAdmin webmasterwww.linuxidc.com //管理员的邮箱# DocumentRoot /www/docs/www.linuxidc.com //虚拟主机的网页存放目录,必须# ServerName www.linuxidc.com //能被DNS或Hosts解析的完整域名,必须# ServerAlias www.dummy-host.example.com //虚拟主机别名# ErrorLog logs/www.linuxidc.com-error_log //错误日志 # CustomLog logs/www.linuxidc.com-access_log common //访问日志#/VirtualHost在虚拟主机之上还能设置很多的功能第二部分的内容都可以出现在每个虚拟主机部分最精简的配置是需要有ServerName和DocumentRoot这两个配置,在添加了虚拟主机的配置之后需要把中心主机的信息也单独写成一个虚拟机的配置或者注销ServerName和DocumentRoot这两个配置不然中心主机名的服务就不知道丢到哪里去了这一步骤在Apache帮助文档中称做取消中心主机当然如果你想有多个域名都指向到同一个虚拟主机是可以通过在VirtualHost块中配置ServerAlias功能来实现的。DNS指向问题:如果你设置了别名多个域名指向同一个虚拟主机那么一定要保证DNS能正常解析的到VirtualHost段配置指定作用域的问题:你可以把其他一些指令放入VirtualHost段中以更好的配置一个虚拟主机。大部分指令都可以放入这些VirtualHost段中以改变相应虚拟主机配置。主服务器(main server)范围内的配置指令(在所有VirtualHost配置段之外的指令)仅在它们没有被虚拟主机的配置覆盖时才起作用。
虚拟主机名的问题:当一个请求到达的时候服务器会首先检查它是否使用了一个能和NameVirtualHost相匹配的IP地址。如果能够匹配它就会查找每个与这个IP地址相对应的VirtualHost段并尝试找出一个与请求的主机名相同的ServerName或ServerAlias配置项。如果找到了它就会使用这个服务器。否则将使用符合这个IP地址的第一个列出的虚拟主机。
顺序展示客户端发起一个访问域名的请求—DNS解析到目标主机—检查是否开启了虚拟主机的功能—检查是否能和NameVirtualHost相匹配—查找出每个与该IP对应的虚拟主机段配置—尝试找出与请求的完整域名相同的ServerName或ServerAlias—如果找到就使用这个虚拟主机的配置—如果配置中与中心主机的配置不冲突则优先使用中心主机的配置如果找不到与之相匹配的完整域名的虚拟主机配置—使用符合这个IP地址的第一个虚拟主机综上所述第一个列出的虚拟主机充当了默认虚拟主机的角色。当一个IP地址与NameVirtualHost指令中的配置相符的时候主服务器中的DocumentRoot将永远不会被用到。所以如果你想创建一段特殊的配置用于处理不对应任何一个虚拟主机的请求的话你只要简单的把这段配置放到VirtualHost段中并把它放到配置文件的最前面就可以了。实例NameVirtualHost *:80VirtualHost *:80ServerName www1.myweb.comServerAlias www2.myweb.comDocumentRoot /myseb/vhosts/www1ErrorLog logs/dummy-host.aaa.com-error.logDirectory /myseb/vhosts/www1Options NoneAllowOverride NoneOrder allow,denyAllow from all/Directory/VirtualHostVirtualHost *:80ServerName www1.myweb2.comDocumentRoot /myweb/vhosts/www2/VirtualHost