常规设置Apache服务器实例
常规设置Apache服务器实例
1.设置文档根目录和首页文件的实例
【例1】默认情况下,网站的文档根目录保存在/var/www/html中,如果想把保存网站文档的根目录修改为/home/wwwroot,并且将首页文件修改为myweb.html,那么该如何操作呢?
(1)分析
文档根目录是一个较为重要的设置,一般来说,网站上的内容都保存在文档根目录中。在默认情形下,除了记号和别名将改指它处以外所有的请求都从这里开始。而打开网站时所显示的页面即该网站的首页(主页)。首页的文件名是由DirectoryIndex字段来定义的。在默认情况下,Apache的默认首页名称为index.html。当然也可以根据实际情况进行更改。
(2)解决方案
① 在Centos77-1上修改文档的根据目录为/home/www,并创建首页文件myweb.html。
[root@Centos77-1 ~]# mkdir /home/www
[root@Centos77-1 ~]#echo "The Web's DocumentRoot Test " > /home/www/myweb.html
② 在Centos77-1上,打开httpd服务程序的主配置文件,将约第119行用于定义网站数据保存路径的参数DocumentRoot修改为/home/www,同时还需要将约第124行用于定义目录权限的参数Directory后面的路径也修改为/home/www, 将第164行修改为DirectoryIndex myweb.html index.html。配置文件修改完毕后即可保存并退出。
[root@Centos77-1 ~]# vim /etc/httpd/conf/httpd.conf
………………省略部分输出信息………………
119 DocumentRoot "/home/www"
120
121 #
122 # Relax access to content within /var/www.
123 #
124 <Directory "/home/www">
125 AllowOverride None
126 # Allow open access:
127 Require all granted
128 </Directory>
………………省略部分输出信息………………
163 <IfModule dir_module>
164 DirectoryIndex index.html myweb.html
165 </IfModule>
………………省略部分输出信息………………
③ 让防火墙放行http服务,重启httpd服务。
[root@Centos77-1 ~]# firewall-cmd --permanent --add-service=http
[root@Centos77-1 ~]# firewall-cmd --reload
[root@Centos77-1 ~]# firewall-cmd --list-all
④ 在Client1测试(Centos77-1和Client1都是VMnet1连接,保证互相通信),如图所示。
[root@client1 ~]# firefox http://192.168.10.1
⑤ 故障排除。
奇怪!为什么看到了httpd服务程序的默认首页面?按理来说,只有在网站的首页面文件不存在或者用户权限不足时,才显示htpd服务程序的默认首页面。更奇怪的是,我们在尝试访问 http://192.168.10.1/myweb.html页面时,竟然发现页面中显示“Forbidden, You dont have permission to access /myweb.html on this server.”,如图所示。什么原因呢?是SELinux的问题!解决方法是在服务器端运行setenforce O,设置SELinux为允许:
[root@Centos77-1 ~]# getenforce
Enforcing
[root@Centos77-1 ~]# setenforce 0
[root@Centos77-1 ~]# getenforce
Permissive
在Client1上再次测试,如图所示。
[root@client1 ~]# firefox http://192.168.10.1
2.用户个人主页实例
【例2】在IP地址为192.168.10.1的Apache服务器中,为系统中的devil用户设置个人主页空间。该用户的家目录为/home/devil,个人主页空间所在的目录为public_html。
① 修改用户的家目录权限,使其他用户具有读取和执行的权限。
[root@Centos77-1 ~]# useradd devil
[root@Centos77-1 ~]# passwd devil
[root@Centos77-1 ~]# chmod 705 /home/devil
② 创建存放用户个人主页空间的目录。
[root@Centos77-1 ~]# mkdir /home/devil/public_html
2.用户个人主页实例
③ 创建个人主页空间的默认首页文件。
[root@Centos77-1 ~]# cd /home/devil/public_html
[root@Centos77-1 public_html]# echo "this is devil's web。">>index.html
④ 在 httpd服务程序中,默认没有开启个人用户主页功能。为此,我们需要编辑配置文件/etc/httpd/conf.d/userdir.conf。然后在第17行的UserDir disabled参数前面加上井号(#),表示让 httpd 服务程序开启个人用户主页功能。同时,需把第24行的UserDir public_html参发前面的井号(#)去掉(UserDir 参数表示网站数据在用户家目录中的保存目录名称,即public_html 目录)。修改完毕保存退出。(在vim 编辑状态记得使用“:set nu”,显示行号)
[root@Centos77-1 ~]# vim /etc/httpd/conf.d/userdir.conf
…………<省略>
17 # UserDir disabled
…………<省略>
24 UserDir public_html
…………<省略>
⑤ SELnux设置为允许,让防火墙放行httpd服务,重启httpd服务。
[root@Centos77-1 ~]# setenforce 0
[root@Centos77-1 ~]# firewall-cmd --permanent --add-service=http
[root@Centos77-1 ~]# firewall-cmd --reload
[root@Centos77-1 ~]# firewall-cmd --list-allt
[root@Centos77-1 ~]# systemctl restart httpd
⑥ 在客户端的浏览器中输入http://192.168.10.1/~devil,看到的个人空间的访问效果如图所示。
3.虚拟目录实例
【例3】在IP地址为192.168.10.1的Apache服务器中,创建名为/test/的虚拟目录,它对应的物理路径是/virdir/,并在客户端测试。
① 创建物理目录/virdir/。
[root@Centos77-1 ~]# mkdir -p /virdir/
② 创建虚拟目录中的默认首页文件。
[root@Centos77-1 ~]# cd /virdir/
[root@Centos77-1 virdir]# echo "This is Virtual Directory sample。">>index.html
③ 修改默认文件的权限,使其他用户具有读和执行权限。
[root@Centos77-1 virdir]# chmod 705 index.html
或者
[root@Centos77-1 ~]# chmod 705 /virdir -R
④ 修改/etc/httpd/conf/httpd.conf文件,添加下面的语句:
Alias /test "/virdir"
<Directory "/virdir">
AllowOverride None
Require all granted
</Directory>
⑤ SELnux设置为允许,让防火墙放行httpd服务,重启httpd服务。
[root@Centos77-1 ~]# setenforce 0
[root@Centos77-1 ~]# firewall-cmd --permanent --add-service=http
[root@Centos77-1 ~]# firewall-cmd --reload
[root@Centos77-1 ~]# firewall-cmd --list-all
[root@Centos77-1 ~]# systemctl restart httpd
⑦ 在客户端Client1的浏览器中输入:“http://192.168.10.1/test”后,看到的虚拟目录的访问效果如图所示。
其他常规设置
- 根目录设置(ServerRoot)
配置文件中的ServerRoot字段用来设置Apache的配置文件、错误文件和日志文件的存放目录。该目录是整个目录树的根节点,如果下面的字段设置中出现相对路径,那么就是相对于这个路径的。默认情况下,根目录为/etc/httpd,可以根据需要进行修改。
【例4】设置根目录为/usr/local/httpd。
ServerRoot "/usr/local/httpd”
2.超时设置
Timeout字段用于设置接受和发送数据时的超时设置。默认时间单位是秒。如果超过限定的时间客户端仍然无法连接上服务器,则予以断线处理。默认时间为120秒,可以根据环境需要予以更改。
【例5】设置超时时间为300秒。
Timeout 300
3.客户端连接数限制
客户端连接数限制就是指在某一时刻内,www服务器允许多少客户端同时进行访问。允许同时访问的最大数值就是客户端连接数限制。
(1)为什么要设置连接数限制?
讲到这里不难提出这样的疑问,网站本来就是提供给别人访问的,何必要限制访问数量,将人拒之门外呢?如果搭建的网站为一个小型的网站,访问量较小,则对服务器响应速度没有影响。不过如果网站访问用户突然过多,一时间点击率猛增,一旦超过某一数值很可能导致服务器瘫痪。门户级网站,例如百度、新浪、搜狐等大型网站,它们所使用的服务器硬件实力相当雄厚,可以承受同一时刻成千甚至上万的单击量,但是,硬件资源还是有限的,如果遇到大规模的 DDoS(Distributed Denial of Service,分布式拒绝服务攻击),仍然可能导致服务器过载而瘫痪。作为企业内部的网络管理者应该尽量避免类似的情况发生,所以限制客户端连接数是非常有必要的。
(2)实现客户端连接数限制。
在配置文件中,MaxClients字段用于设置同一时刻内最大的客户端访问数量,默认数值是256。对于小型的网站来说已经够用了。如果是大型网站,可以根据实际情况进行修改。
【例13-6】设置客户端连接数为500。
<IfModule prefork.c>
StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 500
MaxClients 500
MaxRequestSPerChild 4000
</IfModule>
注意:MaxClients 字段出现的频率可能不止一次,请注意这里的 MaxClients 是包含在<IfModule prefork.c></IfModule>这个容器当中的。
4.设置管理员邮件地址
当客户端访问服务器发生错误时,服务器通常会将带有错误提示信息的网页反馈给客户端,并且上面包含管理员的E-mail地址,以便解决出现的错误。
如果需要设置管理员的E-mail地址,可有使用ServerAdmin字段来设置。
【例7】设置管理员的E-mail地址为root@smile.com。
ServerAdmin root@smile.com
- 设置主机名称
ServerName字段定义了服务器名称和端口号,用以标明自己的身份。如果没有注册DNS名称,可以输入IP地址。当然,可以在任何情况下输入IP地址,这也可以完成重定向工作。【例8】设置服务器主机的名称及端口号。
ServerName www.example.com:80
技巧:正确使用ServerName字段设置服务器的主机名称或IP地址后,在启动服务时则不会出现 "Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName”的错误提示了。6.网页编码设置
由于地域的不同,中国和外国,或者说亚洲地区和欧美地区所采用的网页编码也不同,如果出现服务器端的网页编码和客户端的网页编码不一致,就会导致乱码的出现。这和各国人民所使用的母语不同道理一样,这样会带来交流的障碍。如果想正常显示网页的内容,则必须使用正确的编码。
httpd.conf中使用AddDefaultCharset字段来设置服务器的默认编码。在默认情况下,服务器编码采用UTF-8。而汉字的编码一般是GB2312,国家强制标准是GB18030。具体使用哪种编码要根据网页文件里的编码来决定,保持和这些文件所采用的编码是一致的,就可以正常显示。【例9】设置服务器的默认编码为GB2312。
AddDefaultCharset GB2312
技巧:若不清楚该使用哪种编码,则可以把 AddDefaultCharset 字段注释掉,表示不使用任何编码,这样让浏览器自动去检测当前网页所采用的编码是什么,然后自动进行调整。对于多语言的网站搭建,最好采用注释掉AddDefaultCharset 字段的这种方法。7.目录设置
目录设置就是为服务器上的某个目录设置权限。通常在访问某个网站的时候,真正所访问的仅仅是那台Web服务器里某个目录下的某个网页文件而已。而整个网站也是由这些零零总总的目录和文件组成。作为网站的管理人员,可能经常需要只对某个目录做出设置,而不是对整个网站做设置。例如,拒绝192.168.0.100的客户端访问某个目录内的文件。这时,可以使用<Directory></Directory>容器来设置。这是一对容器语句,需要成对出现。在每个容器中有options、AllowOverride、Limit等指令,它们都是和访问控制相关的。各参数如表1所示。
表1 Apache目录访问控制选项
访问控制选项 |
描 述 |
Options |
设置特定目录中的服务器特性,具体参数选项的取值见表2 |
AllowOverride |
设置如何使用访问控制文件.htaccess |
Order |
设置Apache缺省的访问权限及Allow和Deny语句的处理顺序 |
Allow |
设置允许访问Apache服务器的主机,可以是主机名也可以是IP地址 |
Deny |
设置拒绝访问Apache服务器的主机,可以是主机名也可以是IP地址 |
(1)根目录默认设置。
<Directory/>
Options FollowSymLinks ①
AllowOverride None ②
</Directory>
以上代码中带有序号的两行说明如下。
①Options字段用来定义目录使用哪些特性,后面的FollowSymLinks 指令表示可以在该目录中使用符号链接。Options还可以设置很多功能,常见功能请参考表2所示。
② AllowOveride 用于设置.hiaccess 文件中的指令类型。None 表示禁止使用.htaccess。
表2 Options选项的取值
可用选项取值 |
描 述 |
Indexes |
允许目录浏览。当访问的目录中没DirectoryIndex参数指定的网页文件时,会列出目录中的目录清单 |
Multiviews |
允许内容协商的多重视图 |
All |
支持除Multiviews以外的所有选项,如果没有Options语句,默认为All |
ExecCGI |
允许在该目录下执行CGI脚本 |
FollowSysmLinks |
可以在该目录中使用符号链接,以访问其他目录 |
Includes |
允许服务器端使用SSI(服务器包含)技术 |
IncludesNoExec |
允许服务器端使用SSI(服务器包含)技术,但禁止执行CGI脚本 |
SymLinksIfOwnerMatch |
目录文件与目录属于同一用户时支持符号链接 |
注意:可以使用“+”或“-”在 Options 选项中添加或取消某个选项的值。如果不使用这两个符号,那么在容器中的Options 选项的取值将完全覆盖 以前的 Options 指令的取值。
- 文档目录默认设置。
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride None ①
Order allow, deny ②
Allow from all ③
</Directory>
以上代码中带有序号的两行说明如下。
①AllowOverride所使用的指令组此处不使用认证。
②设置默认的访问权限与Allow和Deny字段的处理顺序。
③Allow字段用来设置哪些客户端可以访问服务器。与之对应的Deny字段则用来限制哪些客户端不能访问服务器。
AIlow和Deny字段的处理顺序非常重要,需要详细了解它们的意思和使用技巧。
情况一:Order allow, deny
表示默认情况下禁止所有客户端访问,且Allow 字段在Deny字段之前被匹配。如果既匹配 Allow 字段又匹配Deny 字段,则Deny 字段最终生效。也就是说Deny会覆盖Allow。
情况二:Order deny, allow
表示默认情况下允许所有客户端访问,且Deny字段在Allow语句之前被匹配。如果既匹配Allow字段又匹配Deny字段,则Allow字段最终生效。也就是说Allow会覆盖Deny。
下面举例来说明Allow 和Deny字段的用法。
【例10】允许所有客户端访问(先允许后拒绝)。
Order allow, deny
Allow from all
【例11】拒绝IP地址为192.168.100.100和来自.bad.com域的客户端访问。其他客户端都可以正常访问。
Order deny,allow
Deny from 192.168.100.100
Deny from .bad.com
【例12】仅允许192.168.0.0/24网段的客户端访问,但其中192.168.0.100不能访问。
Order allow,deny
Allow from 192.168.0.0/24
Deny from 192.168.0.100
【例13】除了www.test.com的主机,允许其他所有人访问Apache服务器。
Order allow,deny
Allow from all
Deny from www.test.com
【例14】只允许10.0.0.0/8网段的主机访问服务器。
Order deny,allow
Deny from all
Allow from 10.0.0.0/255.255.0.0
注意:Over、Allow from和Deny from关键词,它们大小写不敏感,但allow和deny之间以“,”分割,二者之间不能有空格。
技巧:如果仅仅想对某个文件做权限设置,则可以使用<Files文件名></Files>容器语句实现,方法和使用<Directory “目录"></Directory>几乎一样。例如;
<Files "/var/www/html/f1.txt">
Order allow, deny
Allow from all
</Files>
常规设置Apache服务器实例相关推荐
- 设置Apache服务器的重定向
1.什么是重定向? 通过各种方法将各种网络请求重新定个方向,转到其他地方(分为内部和外部, 内部是看不到的,外部url会变化) 这是官方的介绍,用自己的话来说, 重定向就是把网络请求到另一个地方, 本 ...
- Apache应用实例:建立yum服务器
Apache应用实例:建立yum服务器 服务器端配置 1. 安装Apache 将iso文件拷贝至本机,并建立本地安装yum源 vi /etc/fstab /iso/rhel-server-6. ...
- apache服务器设置
apache下的原文件: # This is the main Apache server configuration file. It contains the # configuration di ...
- 虚拟主机的服务器配置在哪,配置Apache服务器下的虚拟主机设置有什么要求?景安...
什么是apache虚拟主机?apache虚拟主机就是在apache服务器上配置多个虚拟主机,从而把一个服务器提供多站点的服务实现.用通俗的话来说就是对同一个服务器上的不同目录进行访问.那么如何在Apa ...
- Apache 服务器 参数设置
Apache 服务器参数设置 主配置文件全局参数 辅配置文件全局参数 ServerRoot: 用于指定apache服务器的配置文件及日志文件存放的根目录,服务器的基础目录. Listen: 监听指令, ...
- Linux-Apache服务器常规设置——用户个人主页
更多详细文档:http://download.csdn.net/download/zml_2015/8843061 (1) 设置Linux系统用户个人主页的目录. Linux系统用户个人主页 ...
- Apache服务器访问权限设置
安装完Apache服务器后访问localhost提示无权限访问,此时需要对conf文件夹下的httpd.conf文件进行修改 在httpd.conf文件中找到如下代码 <span style=& ...
- web服务器设置默认网站,web服务器中默认首页和默认网站的配置(以apache服务器为例)...
默认首页的配置:php 第一种:直接修改apache服务器的配置文件./conf/httpd.conf中的DirectoryIndex,如:(项目web以index.php为首页) html Dir ...
- Apache服务器中的.htaccess文件的配置
如何在windows下创建.htaccess文件 首先, 暂且别管.htaccess是什么, 有什么作用, 让我们暂且解决首要问题:如何在windows下创建.htaccess文件. 在windows ...
最新文章
- adb devices只显示List of devices attached
- JDBC: Java连接MySQL
- SAP ABAP实用技巧介绍系列之已知某个signature查找定义的方法
- 从MVP到微软产品经理的几点心得
- Ubuntu环境下,使用clion编译器,使用开源opensll的对称AES算法对于文件进行加密,C++代码
- java+跑多线程_java项目怎么多线程跑单元测试,ide是intellij?
- Entity Framework Core 3.0 和 Entity Framework 6.3 正式发布
- 地图画指定区域_善用GIS 妙绘“环卫”一图画卷
- php文字成图片格式_使用PHP将文字转换成图片的功能实现方法
- 2015年全国大学生电子设计竞赛A题(双向DC-DC变换器)训练总结(硬件部分)
- linux压缩文件夹命令
- 解决类似 The word is not correctly spelled等pom文件拼写错误问题
- VC++,6.0 MFC设计--- 图形界面
- 这应该是关于GPS定位写得最详实清晰的文章之一
- latex longtable 自动换行_TechRepo | LaTeX基本知识和应用
- Ureport2导出内容加入PDF文件
- Apache Kafka API AdminClient Scram账户的创建与删除
- 【文献摘录】癫痫与脑电图特点
- Linux如何快速删除大量文件
- python海龟画小猪佩奇动画片全集_用python画个小猪佩奇
热门文章
- 关于纹理特征的基础知识介绍
- unity quad使用材质球的小技巧
- Pydicom User Giude
- 基于VHDL语言的状态机设计
- 沈超+shell课件_[Linux教程 李明 沈超 兄弟连]10.4.4 Shell基础-Bash变量-预定义变量.ppt...
- CSS学习(五)—— 背景与渐变、2D与3D的转换
- .o/.obj 文件的组成格式
- Java工具封装:Html、Css、Javascript文件内容压缩
- ESP8266开发笔记4-AT24C256读写全流程
- Mutable variable is accessible from closure