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

[经验分享] Linux服务篇之三:构建Apache服务器

[复制链接]

尚未签到

发表于 2018-11-21 09:55:07 | 显示全部楼层 |阅读模式
Linux服务篇之三、构建Apache服务器

Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。Apache工作模式有多种,其中最常用的有两种:
Prefork模式:Prefork MPM使用多个子进程,每个子进程只有一个线程。每个进程在某个确定的时间只能维持一个连接。
在大多数平台上,Prefork MPM在效率上要比Worker MPM要高,但是内存使用大得多。prefork的无线程设计在某些情况下将比worker更有优势:它可以使用那些没有处理好线程安全的第三方模块,并且对于那些线程调试困难的平台而言,它也更容易调试一些。
Worker模式:Worker MPM使用多个子进程,每个子进程有多个线程。每个线程在某个确定的时间只能维持一个连接。通常来说,在一个高流量的HTTP服务器上,Worker MPM是个比较好的选择,因为Worker MPM的内存使用比Prefork MPM要低得多。
Worker MPM也由不完善的地方,如果一个线程崩溃,整个进程就会连同其所有线程一起"死掉".由于线程共享内存空间,所以一个程序在运行时必须被系统识别为"每个线程都是安全的"。
  一、源码包安装Apache
  1、下载软件,wge thttp://www.apache.org/dist/httpd/httpd-2.2.29.tar.gz
  2、下载之前,先安装一下wget这个软件,
DSC0000.jpg

  3、下载apache软件,
DSC0001.jpg

  4、解压apache,
DSC0002.jpg

  5、安装apache之前,需要先安装:apr、apr-util、apr-util-devel、gcc-c++
  yum install apr apr-util -y
  yum install apr-devel apr-util-devel -y
  yum install gcc-c++ -y
  注:ap和apr-uti是一些优化的库文件;
  6、下面开始正式安装apache
  进入该目录:预编译、编译、安装、到指定的具体安装目录:
  ./configure --prefix=/usr/local/apache --enable-rewrite --enable-so --with-mpm=worker
  make&&make install
  7、进入安装目录,
DSC0003.jpg

  8、并启动apache服务,端口80已经看到,该服务已经启动了!
DSC0004.jpg

  9、打开浏览器,首页已经成功打开了!
DSC0005.jpg

  10、认识一下apache的各个目录功能,
  主目录:/usr/local/apache/
  启动目录:/usr/local/apache/bin/apachectl
  发布目录:/usr/local/apache/htdocs/
  配置文件目录:/usr/local/apache/conf/httpd.conf
  虚拟主机目录:/usr/local/apache/conf/extra
  11、如果需要以http://192.168.174.13:8080,来访问,需要修改这里:
DSC0006.jpg

  显示的网页,
DSC0007.jpg

  12、如果需要以域名的形式来显示该网页,映射关系为:192.168.174.13-->www.tuodi.com,
  需要修改一下本地的配置文件:找到这个文件并添加以上内容:
  C:\Windows\System32\drivers\etc\hosts,
DSC0008.jpg

  以域名形式打开页面:
DSC0009.jpg

  13、查看apache进程和端口:
DSC00010.jpg

  二、Apache构建基于域名的虚拟机主机,实现多域名主机的访问
  1、修改vi /usr/local/apache2/conf/extra/httpd-vhosts.conf 虚拟主机配置文件内容如下:
  出现这个告警:
DSC00011.jpg

  提示需要删除这个文件,
DSC00012.jpg

  正确显示了虚拟主机配置文件的内容:
DSC00013.jpg

  删除那些带#的列,只保留需要的配置文件即可:
DSC00014.jpg

  2、修改该配置文件并保存,
DSC00015.jpg

  3、创建以上发布目录:
  进入发布目录:/usl/local/apache/htdocs,创建发布目录文件夹,
DSC00016.jpg

  4、将默认的首页文件复制到这2个文件中,
DSC00017.jpg

  5、进入主配置文件:/usr/local/apache/conf/httpd.conf,引用以上配置的虚拟主机文件,
DSC00018.jpg

  6、测试apache配置文件是否有错误,再重启一下,
DSC00019.jpg

  7、打开测试页面:测试正确!
DSC00020.jpg

  8、模仿一下百度、新浪的首页:
  下载百度、新浪的首页,并替换成首页内容:
  wget -r -x www.baidu.com
  mv www.baidu.com/index.html .
  rm -rf www.baidu.com/
  wget -r -x www.sina.com
  mv www.sina.com.cn/index.html .
  m -rf www.sina.com.cn/
  重启服务,打开测试页面:
DSC00021.jpg

  9、如果发布目录不想使用默认的:/usr/local/apache/htdocs,则需要添加红色字体部分的内容!允许/data/webapps/www2对外提供访问的发布目录!

    ServerAdminwgkgood@163.com
    DocumentRoot"/data/webapps/www2"
    ServerNamewww.wugk2.com
  
  AllowOverride All
   Options -Indexes FollowSymLinks
   Order allow,deny
   Allow from all

    ErrorLog  logs/error_log
    CustomLoglogs/access_log common

  三、自定义安装apache发布目录
  1、新建一个虚拟主机配置文件,
DSC00022.jpg

  2、新建2个发布目录:
  mkdir -p /data/webapps/{www1,www2}
  cp /usr/local/apache/htdocs/tuodi01/index.html  .
  cp /usr/local/apache/htdocs/tuodi02/index.html  .
  3、修改引用文件的配置:
DSC00023.jpg

  4、重新加载配置文件即可!
  不要重启,重启会将网站服务中断后再启动服务!
DSC00024.jpg

  打开测试网站:
DSC00025.jpg

  5、停止源码包安装的apache,做一下快照!下面采用yum安装apache。
DSC00026.jpg

  
四、yum安装apache
  1、安装apache:yum install httpd httpd-devel -y
  2、安装后的主目录:/etc/httpd/
  3、主配置文件目录:/etc/httpd/conf/httpd.conf
  4、发布目录:/var/www/html
  5、重启Apache服务:/etc/init.d/httpd restart
  6、打开apache的首页,该页面是一个403的错误页提示!
DSC00027.jpg

  7、查看发布目录的配置,并新增测试页,
  cd /var/www/html/
  vi index.html
  
This YUM install web site

  8、访问的所有网站的内容都记录在这个位置, DSC00028.jpg
  9、日志路径信息,
DSC00029.jpg

  10、打开日志记录功能:去掉注释即可!
DSC00030.jpg

  11、再次访问一下测试页面,
DSC00031.jpg

  12、出现了访问日志信息!
DSC00032.jpg

  五、Apache的工作模式
  1、yum下查看:httpd -l
  工作方式:prefork
DSC00033.jpg

  2、源码包安装apache查看方式:/usr/local/apache/bin/httpd -l
  工作方式:worker
DSC00034.jpg

DSC00035.jpg

  3、查看yum安装的apache的工作模式
DSC00036.jpg

  验证一下是否有8个子进程:
DSC00037.jpg

  4、修改一下内容,
DSC00038.jpg

  5、重启一下服务,
DSC00039.jpg

  6、目前有3个进程,
DSC00040.jpg

  7、在实际环境中,子进程非常之多,一般需要用这个命令,才能统计出所有子进程的数量:
DSC00041.jpg

  8、查看出所有的子进程,并不能说明有多少个连接!子进程还会引用多线程!每个线程也会有连接数!
  9、这就需要使用这个命令来查看:netstat -an |awk '{print $NF}' |grep "ESTABLISHED"
DSC00042.jpg

  与已经建立的连接数统计:netstat -an |awk '{print $NF}' |grep "ESTABLISHED" |wc -l
DSC00043.jpg

  进程比较,可以看到这个系统上,确实有5个实际的连接数!
  但这5个连接数,还不一定是httpd的tcp 80端口连接数
  10、这里显示了所有用户请求的列表,目前所有的链接都来自:192.168.174.13这台主机连接到服务器的22端口!无80端口的请求!
DSC00044.jpg

  而如果在实际应用环境中:可能有无数个这样的连接!
  还需要再过滤一次,看到了当前实际正在连接并且转发的进程数!
DSC00045.jpg

  11、为了达到测试效果,访问3次该网站,
DSC00046.jpg

  12、查看所有用户请求的列表:发现有3个来自tcp 80端口的请求!
DSC00047.jpg

  13、再来看一下子进程数量:目前只有3个访问量,已经够用,无需再启动空闲的进程!
DSC00048.jpg

  worker模式与prefork模式类似
  先关闭yum安装的httpd:pkill http
  8、再进入源码包安装apache的配置文件:vi extra/httpd-mpm.conf
DSC00049.jpg

  这里可以进一步的调优!本次实验到此,再做一次快照!




运维网声明 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-637630-1-1.html 上篇帖子: 使用VMware 测试 PXE+DHCP+Apache+Kickstart 批量安装服务器 下篇帖子: Linux下apache源码安装
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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