常规设置Apache服务器实例

news2024/11/30 2:44:41

  常规设置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”后,看到的虚拟目录的访问效果如图所示。

 其他常规设置

  1. 根目录设置(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

  1. 设置主机名称
        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 指令的取值。

  1. 文档目录默认设置。
    <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>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/87690.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CPU一级缓存L1 D-cache\L1 I-cache与二级缓存L2 cache深度分析

CPU缓存&#xff1a;通过优化的的读取机制&#xff0c;可以使CPU读取缓存的命中率非常高&#xff08;大多数CPU可达90%左右&#xff09;&#xff0c; 也就是说CPU下一次要读取的数据90%都在缓存(SRAM)中&#xff1b; 只有大约10%需要从内存&#xff08;DRAM、DDR等&#xff0…

MATLAB抽样定理实验

目录 一、实验目的 二、实验原理 三、实验要求 四、实验内容 1、连续时间信号时域波形及其幅度谱 2、信号进行抽样 3、频谱分析 4、由各抽样信号恢复出连续时间信号&#xff0c;计算并画出误差函数 一、实验目的 1、掌握抽样定理工作原理 2、练习使用Matlab编程进行抽…

非零基础自学Golang 第2章 安装和运行Go 2.5 安装开发工具

非零基础自学Golang 第2章 安装和运行Go 2.5 安装开发工具 互联网有很多可用的开发工具&#xff08;IDE&#xff09;&#xff0c;对于Go开发者来说&#xff0c;选一款最好用的工具&#xff0c;可以更高效地编码和构建项目。 GoLand是一款由JetBrains公司&#xff08;一家技…

【面试题】三面 面试官:运行 npm run xxx 的时候发生了什么?

大厂面试题分享 面试题库 前端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★ 地址&#xff1a;前端面试题库 事情是这样的&#xff0c;直接开讲 面试官&#xff1a;npm run xxx的时候&#xff0c;发生了什么&#xff1f;讲的越详细越好。 我&am…

智能家居DIY之智能插座

WiFi智能插座对于新手接触智能家居产品更加友好&#xff0c;不需要额外购买网关设备 很多智能小配件也给我们得生活带来极大的便捷&#xff0c;智能插座就是其中之一&#xff0c;比如外出忘记关空调&#xff0c;可以拿起手机远程关闭。 简单说就是&#xff1a;插座可以连接wi…

深度学习的初学者用哪本书比较好的?

先推荐一本从基本概念和理论入手的深度学习书&#xff1a; 深度学习&#xff1a;从基础到实践&#xff08;上、下册&#xff09; 本书从基本概念和理论入手&#xff0c;通过近千张图和简单的例子由浅入深地讲解深度学习的相关知识&#xff0c;且不涉及复杂的数学内容。 本书分…

交叉梯度函数的MATLAB实现及代码分享01

交叉梯度函数的MATLAB实现及代码分享01 交叉梯度函数可用于反演成像中。作为一个连接不同物性参数的桥梁&#xff0c;交叉梯度函数可以实现不同物性参数的联合反演成像。 文章目录交叉梯度函数的MATLAB实现及代码分享01一、交叉梯度函数的定义二、交叉梯度函数的性质三、模型算…

14:30面试,14:38就出来了 ,问的实在是太...

从外包出来&#xff0c;没想到算法死在另一家厂子&#xff0c;自从加入这家公司&#xff0c;每天都在加班&#xff0c;钱倒是给的不少&#xff0c;所以也就忍了。没想到8月一纸通知&#xff0c;所有人不许加班&#xff0c;薪资直降30%&#xff0c;顿时有吃不起饭的赶脚。 好在有…

考虑特性分布的储能电站接入的电网多时间尺度源储荷协调调度策略(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客 &#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜…

为什么mac电脑识别不出来u盘?macbook识别不了u盘的解决办法

为什么mac电脑识别不出来u盘&#xff1f;关于U盘插入Mac电脑无反应的情况有很多种&#xff0c;是电脑无法识别U盘&#xff1f;电脑上面没有U盘的图标&#xff1f;还是插入后无法对U盘进行写入&#xff1f;针对不同的情况&#xff0c;解决的方法也是不一样的。现在&#xff0c;我…

电脑重装系统一启动就黑屏了该怎么办

相信很多用户都遇到过电脑一开机就黑屏了的问题&#xff0c;对于这个问题很多用户不知道怎么去排查问题&#xff0c;这里就和大家简单聊聊遇到电脑开机黑屏这种情况都有什么原因&#xff0c;又该如何解决吧。下面一起来看看解决方法吧&#xff01; 电脑一启动就黑屏的问题该如何…

一场没有先例的自动驾驶算法大赛,出结果了

贾浩楠 发自 凹非寺量子位 | 公众号 QbitAI自动驾驶领域没有先例的一场挑战赛&#xff0c;刚刚出结果。1067支队伍&#xff0c;整3个月时间主要在自动驾驶卡车、干线物流和自动驾驶轿车、城市道路双赛道场景下角逐。这也或是国内首次有干线物流赛道入赛&#xff0c;覆盖AEB紧急…

引擎入门 | Unity UI简介–第2部分(8)

本期我们继续为大家进行Unity UI简介&#xff08;第二部分&#xff09;的后续教程 本篇内容 14.静音功能 15.使用滑块来调节音量 16.更改AudioSource组件的音量 文章末尾可免费获取教程源代码 本篇本篇Unity UI简介&#xff08;第二部分&#xff09;篇幅较长&#xff0c;…

汇编移位指令SHR,SAR,SAL/SHL,ROR,ROL,RCR,RCL

目录 逻辑右移SHR 算数右移SAR&#xff08;重点&#xff09; 算数/逻辑左移SAL/SHL(完成的操作都一样) 循环右移ROR 循环左移ROL 带进位循环右移RCR 带进位循环左移RCL 总结 例题 一 二 移位指令为双操作数指令&#xff0c;用于将目的的操作数中的二进制数移位。 目…

【JAVA】强引用、软引用、弱引用、幻象引用有什么区别?

前言 在 Java 语言中&#xff0c;除了原始数据类型的变量&#xff0c;其他所有都是所谓的引用类型&#xff0c;指向各种不同的对象&#xff0c;理解引用对于掌握 Java 对象生命周期和 JVM 内部相关机制非常有帮助。 本篇博文的重点是&#xff0c;强引用、软引用、弱引用、幻象…

声纹识别--基础学习笔记

由于每个人的声道、口腔和鼻腔(发音要用到的器官)也具有个体差异性。因为反映到声音上&#xff0c;也是具有差异性的。就比如说&#xff0c;当在接电话的时候&#xff0c;通过一声"喂"&#xff0c;就能准确的分辨出接电话的是谁&#xff0c;人耳作为身体的接收器生来…

Python学习基础笔记四十八——面向对象2

1、类中的属性&#xff1a;静态属性。 class Person:country China # 类属性&#xff0c;静态属性def __init__(self, name, age): # 初始化方法&#xff0c;self是必须传的参数&#xff0c;且放在在第一个self.name name # 往字典里添加属性self…

EVE-NG上互联网 使用cloud节点和NAT转发

EVE-NG上互联网 使用cloud节点和NAT转发一、配置一块进行NAT转发的网卡二、配置nat转发规则-iptables三、使能linux内核转发流量四、测试一、配置一块进行NAT转发的网卡 sudo vi /etc/network/interfaces 选择# Cloud devices下面的1个网卡&#xff0c;pnet1-pnet9任意一个都可…

电脑上如何进行屏幕录制,笔记本电脑录屏怎么录

电脑上如何进行屏幕录制&#xff1f;如果你在日常工作娱乐中有录屏的需求&#xff0c;并且想进一步了解电脑录屏的相关操作步骤&#xff0c;请认真看以下内容&#xff01;小编会给大家分享几种简单的电脑录屏方法。 方法一&#xff1a;PPT屏幕录制 PPT想必大家都很熟悉&#x…

关于sysdiag的利用

背景 因为之前装了某绒&#xff0c;某绒又有一个比较好用的ark工具某绒&#x1f5e1;&#xff0c;想着应该有机会利用一下它的驱动。 接着在driver下面找到了它的驱动&#xff0c;简单分析了一下&#xff0c;发现有可以利用的ioctl。这里有duphandle&#xff0c;操作和之前的p…