熬死你的 发表于 2018-11-21 09:55:07

Linux服务篇之三:构建Apache服务器

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这个软件,

  3、下载apache软件,

  4、解压apache,

  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、进入安装目录,

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

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

  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,来访问,需要修改这里:

  显示的网页,

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

  以域名形式打开页面:

  13、查看apache进程和端口:

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

  提示需要删除这个文件,

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

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

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

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

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

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

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

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

  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/
  重启服务,打开测试页面:

  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

    ErrorLoglogs/error_log
    CustomLoglogs/access_log common

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

  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、修改引用文件的配置:

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

  打开测试网站:

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

  
四、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的错误页提示!

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

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

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

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

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

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

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


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

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

  4、修改一下内容,

  5、重启一下服务,

  6、目前有3个进程,

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

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

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

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

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

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

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

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

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

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



页: [1]
查看完整版本: Linux服务篇之三:构建Apache服务器