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

[经验分享] Apache网站服务

[复制链接]

尚未签到

发表于 2018-11-17 10:24:15 | 显示全部楼层 |阅读模式
一、Apache简介


  • "Apache HTTP Server"开源软件项目杰出代表,使用标准HTTP网络协议提供网页浏览服务,可运行在多种操作系统平台中;使用标准B/S架构
  • Apache是针对之前出现的若干个Web服务器程序进行整合、完善后形成的软件,其名源于"A Patchy Server",意为“基于原有Web服务程序的代码进行修改(补丁)后形成的服务器程序"
  • 1995发布1.0版本,后有"Apache Group"负责该项目的管理和维护;1999年在"Apache Group"基础成立Apache软件基金会(Apache Software Foundation,ASF)
  • 为ASF旗下著名软件项目之一,正式名称为"httpd"
二、Apache特点


  • 开放源代码:任何人都可自由使用,充分体现开源软件精神
  • 跨平台应用:可运行在绝大多数软硬件平台,这得益于Apache的源代码开放
  • 支持各种Web编程语言:可支持Perl、PHP、Python、Java、ASP等
  • 模块化设计:将Apache功能分为各种模块,需要什么功能直接加载对应模块;并且支持商业自行开发模块
  • 运行稳定:可用于构建具有大负载访问量的Web站点
  • 良好的安全性:维护团队及时对已发现漏洞提供修补程序
三、Apache版本


  • 1.X:最高1.3,该版本继承Apache服务器1.0版本以来的优秀特性和配置管理风格,具有良好兼容、稳定性;目前已停止维护
  • 2.X:Apache加入许多新的功能,新的配置语法和管理风格
四、httpd错误代码


  • 100(继续) - 请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分
  • 101(切换协议) - 请求者已要求服务器切换协议,服务器已确认并准备切换
  • 200(成功) - 服务器已成功处理了请求。通常,这表示服务器提供了请求的网页。如果是对您的 robots.txt 文件显示此状态码,则表示 Googlebot 已成功检索到该文件
  • 201(已创建) - 请求成功并且服务器创建了新的资源
  • 202(已接受) - 服务器已接受请求,但尚未处理
  • 203(非授权信息) - 服务器已成功处理了请求,但返回的信息可能来自另一来源
  • 204(无内容) - 服务器成功处理了请求,但没有返回任何内容
  • 205(重置内容) - 服务器成功处理了请求,但没有返回任何内容。与 204 响应不同,此响应要求请求者重置文档视图(例如,清除表单内容以输入新内容)
  • 206(部分内容) - 服务器成功处理了部分 GET 请求
  • 300(多种选择) - 针对请求,服务器可执行多种操作。服务器可根据请求者 (user agent) 选择一项操作,或提供操作列表供请求者选择
  • 301(永久移动) - 请求的网页已永久移动到新位置。服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。您应使用此代码告诉 Googlebot 某个网页或网站已永久移动到新位置
  • 302(临时移动) - 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来响应以后的请求。此代码与响应 GET 和 HEAD 请求 的 301 代码类似,会自动将请求者转到不同的位置,但您不应使用此代码来告诉 Googlebot 某个网页或网站已经移动,因 为 Googlebot 会继续抓取原有位置并编制索引
  • 303(查看其他位置) - 请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。对于除 HEAD 之外的所有请求,服务器会自动转到其他位置
  • 304(未修改) - 自从上次请求后,请求的网页未修改过。服务器返回此响应时,不会返回网页内容;如果网页自请求者上次请求后再也没有更改过,您应将服务器配置为返回此响应(称为 If-Modified-Since HTTP 标头)。服务器可以告诉搜索引擎的蜘蛛/机器人 自从上次抓取后网页没有变更,进而节省带宽和开销
  • 305(使用代理) - 请求者只能使用代理访问请求的网页。如果服务器返回此响应,还表示请求者应使用代理
  • 307(临时重定向) - 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来响应以后的请求。此代码与响应 GET 和 HEAD 请求 的 301 代码类似,会自动将请求者转到不同的位置,但您不应使用此代码来告诉 Googlebot 某个页面或网站已经移动,因 为 Googlebot 会继续抓取原有位置并编制索引
  • 400(错误请求) - 服务器不理解请求的语法
  • 401(未授权) - 请求要求身份验证。对于登录后请求的网页,服务器可能返回此响应
  • 403(禁止) - 服务器拒绝请求。如果您在 Googlebot 尝试抓取您网站上的有效网页时看到此状态码(您可以在 Google 网站管理员工具诊断下的网络抓取页面上看到此信息),可能是您的服务器或主机拒绝了 Googlebot 访问
  • 404(未找到) - 服务器找不到请求的网页。例如,对于服务器上不存在的网页经常会返回此代码;如果您的网站上没有 robots.txt 文件,而您在 Google 网站管理员工具"诊断"标签的 robots.txt 页上看到此状态码, 则这是正确的状态码。但是,如果您有 robots.txt 文件而又看到此状态码,则说明您的 robots.txt 文件可能命名错误或位于错误的位 置(该文件应当位于顶级域,名为 robots.txt);如果对于 Googlebot 抓取的网址看到此状态码(在"诊断"标签的 HTTP 错误页面上),则表示 Googlebot 跟随的可能是另一个页面的无效链接(是旧链接或输入有误的链接)
  • 405(方法禁用) - 禁用请求中指定的方法
  • 406(不接受) - 无法使用请求的内容特性响应请求的网页
  • 407(需要代理授权) - 此状态码与 401(未授权)类似,但指定请求者应当授权使用代理。如果服务器返回此响应,还表示请求者应当使用代理
  • 408(请求超时) - 服务器等候请求时发生超时
  • 409(冲突) - 服务器在完成请求时发生冲突。服务器必须在响应中包含有关冲突的信息。服务器在响应与前一个请求相冲突的 PUT 请求时可能会返回此代码,以及两个请求的差异列表
  • 410(已删除) - 如果请求的资源已永久删除,服务器就会返回此响应。该代码与 404(未找到)代码类似,但在资源以前存在而现在不存在的情况下,有时会用来替代 404 代码。如果资源已永久移动,您应使用 301 指定资源的新位置
  • 411(需要有效长度) - 服务器不接受不含有效内容长度标头字段的请求
  • 412(未满足前提条件) - 服务器未满足请求者在请求中设置的其中一个前提条件
  • 413(请求实体过大) - 服务器无法处理请求,因为请求实体过大,超出服务器的处理能力
  • 414(请求的 URI 过长) - 请求的 URI(通常为网址)过长,服务器无法处理
  • 415(不支持的媒体类型) - 请求的格式不受请求页面的支持
  • 416(请求范围不符合要求) - 如果页面无法提供请求的范围,则服务器会返回此状态码
  • 417(未满足期望值) - 服务器未满足"期望"请求标头字段的要求
  • 500(服务器内部错误) - 服务器遇到错误,无法完成请求
  • 501(尚未实施) - 服务器不具备完成请求的功能。例如,服务器无法识别请求方法时可能会返回此代码
  • 502(错误网关) - 服务器作为网关或代理,从上游服务器收到无效响应
  • 503(服务不可用) - 服务器目前无法使用(由于超载或停机维护)。通常,这只是暂时状态
  • 504(网关超时) - 服务器作为网关或代理,但是没有及时从上游服务器收到请求
  • 505(HTTP 版本不受支持) - 服务器不支持请求中所用的 HTTP 协议版本
五、部署httpd服务

1.准备工作


  • rpm -e httpd --nodeps     //卸载使用RPM方式安装的httpd
  • sed -i '/HOSTNAME/d;aHOSTNAME=www.hiahia.com' /etc/sysconfig/network     //修改主机名
  • sed -i 'a127.0.0.1 www.hiahia.com' /etc/hosts    //在hosts文件中添加主机名
  • 所需的软件包(arp;apr-util;pcre为httpd的依赖)  httpd-2.4.34:http://httpd.apache.org
      apr-1.6.3;apr-util-1.6.1:https://apr.apache.org/
      pcre-8.37:https://ftp.pcre.org/pub/pcre/

2.源码编译及安装
  (1)安装依赖apr
  

tar -jxvf apr-1.6.3.tar.bz2 -C /usr/src/    //解压源码包  

cd /usr/src/apr-1.6.3    //进入解压的目录  

./configure --prefix=/usr/local/apr    //指定安装目录  

make && make install    //编译并安装  

  (2)安装依赖apr-util
  

tar -jxvf apr-util-1.6.1.tar.bz2 -C /usr/src/  

cd /usr/src/apr-util-1.61  

./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr    //指定安装目录和apr安装位置  

make && make install  

  (3)安装依赖pcre
  

tar -jxvf pcre-8.37.tar.bz2 -C /usr/src/  

cd /usr/src/pcre-8.37  

./configure --prefix=/usr/local/pcre   

make && make install  

  (4)安装httpd
  

tar -zxvf httpd-2.4.34 -C /usr/src/    //解压httpd源码包  

cd /usr/src/httpd-2.4.34  

./configure --prefix=/usr/local/httpd --enable-so --enable-charset-lite --enable-rewrite --enable-cgi --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre    //配置安装选项  

  选项
  --prefix:指定程序安装目录
  --enable-so:启动动态加载模块支持,使其具有扩展能力;是用来提供DSO支持的核心模块
  --enable-rewrite:启动网页地址重写功能,用于网站优化及目录迁移维护
  --enable-charset-lite:启用字符集支持,以支持使用各种字符集编码的网页
  --enable-cgi:启用CGI脚本程序支持,扩展网站的应用访问能力;通常执行CGI会涉及到安全问题,系统的任何都可以调用,所以,一般会把CGI放在一个特定的目录下执行
  --with-apr:指定apr安装目录
  --with-apr-util:指定apr-util安装目录
  --with-pcre:指定pcre安装目录
  make && make install    //编译并安装

3.确认安装结果
  

ls /usr/local/httpd  

DSC0000.jpg

  服务目录:/usr/local/httpd/
  主配置文件:/usr/local/httpd/conf/httpd.conf
  网页目录:/usr/local/httpd/htdocs/
  服务脚本:/usr/local/httpd/bin/apachectl
  执行程序:/usr/local/httpd/bin/httpd
  访问日志: /usr/local/httpd/logs/access_log
  错误日志: /usr/local/httpd/logs/error_log

4.优化执行路径
  

ln -s /usr/local/httpd/bin/* /usr/local/bin/    //添加到PATH搜索路径中,用户不需完整命令路径即可使用  

5.添加httpd为系统服务
  

cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd    //拷贝默认脚本文件到系统控制目录  

vim /etc/init.d/httpd  
#chkconfig:35 66 66     //服务识别参数,指定3、5级别顺序启动标识号
  
#description:Startup script for the Apache HTTP Server    //文件开头添加chkconfig识别配置,不添加chkconfig添加服务时报错
  

DSC0001.jpg

  

chkconfig --add httpd           //将httpd添加为系统服务  

六、httpd服务器的基本配置

1.Web站点的部署过程
  (1)确定网站名称、IP地址
  需申请合法公网IP地址,并向DNS提供商申请域名,做对应主机的DNS解析记录
  公司内部使用可自行配置,无需公网IP,但如需内部使用域名可搭建DNS并对对应解析记录添加,修改/etc/hosts文件提高本地解析速度
  (2)配置并启动httpd服务
  

vim /usr/local/httpd/conf/httpd.conf            //编辑httpd主配置文件  
...
  ServerName www.hiahia.com:80
  
...
  
//寻找该行(97行) ,设置网站名称
  

DSC0002.jpg

  

apachectl -t    //检测httpd.conf文件是否有语法错误;“Syntax OK”则无误  

/etc/init.d/httpd start     //启动httpd服务  

netstat -utpln | grep httpd    //过滤是否开启服务  

DSC0003.jpg

  (3)部署网页
  编译安装的httpd服务,网站根目录为/usr/local/httpd/htdocs目录下,将网页文档复制到此目录即可;默认提供index.html测试网页
  (4)在客户端访问网站主页
DSC0004.jpg

  (5)查看站点访问情况
  访问日志: /usr/local/httpd/log/access_log
  错误日志: /usr/local/httpd/log/error_log

2.httpd.conf配置文件
  Apache官方文档:http://httpd.apache.org/docs/2.4/
  (1)全局配置项
  ServerRoot:服务目录
  ServerAdmin:管理员邮箱
  User:运行服务的用户身份;默认daemon
  Group:运行服务的组身份;默认daemon
  ServerName:网站服务器的域名
  DocumentRoot:网页文档的根目录
  Listen:监听的IP地址、端口号;默认80端口
  DirectoryIndex:默认的索引页文件;默认首页文件index.html
  ErrorLog:错误日志文件的位置
  CustomLog:访问日志文件的位置;默认类型common
  LogLevel:记录日志的级别,默认为warn(警告)
  Timeout:网络连接超时,默认为300秒
  KeepAlive:是否保持连接,可选On或Off
  MaxKeepAliveRequests:每次连接最多请求文件数
  KeepAliveTimeout:保持连接状态时的超时时间
  Include:需要包含进来的其他配置文件
  (2)区域配置项(常用)
  httpd-2.2.X
                     限制根目录的访问权限
  Options FollowSymLinks
  AllowOverride None
  Order deny,allow
  访问控制策略的应用顺序;先检查禁止设定,没有禁止的全部允许
  Deny from all
  禁止任何人访问此区域
  
  httpd-2.4.X
                     限制根目录的访问权限
  Options FollowSymLinks
  控制选项,允许使用符号链接;访问到符号连接时,是否跳转到对应的连接路径
  AllowOverride None
  不允许隐含控制文件中的覆盖配置;是否去找.htaccess文件作为配置文件
  Require all granted
  允许任何人访问此区域
  

七、网站访问情况统计

1.部署AWStats分析系统
  (1)安装awstats软件包
  awstat:http://www.awstats.org/
  

tar -zxvf awstats-7.7.tar.gz    //解包  

mv awstats-7.7 /usr/local/awstats    //移动解压缩目录;该软件为绿色版直接可用  

  (2)修改httpd配置文件
DSC0005.jpg

  //CGI脚本模块支持和访问权限设置
  (3)安装perl环境支持
  

yum -y install perl perl-devel perl-CGI  

  (4)为要统计的站点建立配置文件
  

cd /usr/local/awstats/tools/    //进入工具目录  

chmod +x awstats_configure.pl    //给予配置脚本执行权限  

./awstats_configure.pl    //运行配置脚本  

指定httpd主配置文件路径
DSC0006.jpg


设置日志类型
DSC0007.jpg


为指定Web站点创建配置文件
DSC0008.jpg


后续配置工作
  接下来会自动重启httpd服务(前提/etc/init.d/httpd脚本存在)
  如若还需统计其它站点,再次运行./awstats_configure.pl
  (5)修改站点统计配置文件
  

vim /etc/awstats/awstats.www.hiahia.com.conf  
50   LogFile="/usr/local/httpd/logs/access_log"    //指定httpd访问日志所在位置
  

mkdir /var/lib/awstats    //创建数据存放目录  

  (6)执行日志分析并设置周期性计划任务
  

chmod +x awstats_updateall.pl           //给予更新脚本执行权限  

./awstats_updateall.pl now      //立即更新awstats信息并统计到统计数据库中  

crontab -e  
*/5 * * * *  /usr/local/awstats/tools/awstats_updateall.pl now
  

/etc/init.d/crond start && chkconfig --level 35 crond on  

2.web访问AWStats分析系统
  浏览器访问http://192.168.1.151/awstats/awstats.pl?config=www.hiahia.com
DSC0009.jpg

  也可通过编写网页跳传,实现自动跳传网页,简化访问地址
  vim /usr/local/httpd/htdocs/awstats.html
  
  
  

运维网声明 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-636114-1-1.html 上篇帖子: centos7安装apache源码包 下篇帖子: 安装mariadb和apache服务
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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