Apache Web服务器实战

1、Apache Web服务器简介html

1.Apache Web是目前世界使用排名第一的Web服务器软件。Apache服务器的特色是使用简单、速度快、性能稳定、能够做为负载均衡及代理服务器来使用。web

2.在企业中Apache最经常使用的处理模块为Prefork MPM和Worker MPM,Event MPM不多用,默认Apache处理模块为Prefork MPM方式。apache

3.Prefork MPM工做原理:控制进程Master在最初创建"StartServers"个进程后,为了知足MinSpareServers设置的最小空闲进程,因此需建立第一个空闲进程,等待一秒钟,继续建立两个,依次按照递增指数级建立进程数,最多每秒同时建立32个空闲进程,直到知足至少有两MinSpareServers设置的值为止。Apache的预派生模式没必要请求到来时再产生新的进程,从而减小了系统开销以增长性能,该引擎是基于多进程方式提供对外服务,每一个进程只有一个线程,每一个进程在某个肯定的时间只能维持一个链接,优势是稳定,但每一个进程占内存也相对较高vim

4.Worker MPM工做原理:控制进程Master在最初创建"StartServers"个进程,每一个进程会建立ThreadsPerChild设置的线程数,多个线程共享该进程内存空间,同时每一个线程独立处理用户的Http请求。该模式使用多个进程,每一个进程包括多个线程,每一个线程在某个肯定的时间只能维持一个链接,内存占用量比较小,适合大开发、高流量的Web服务器。Worker MPM缺点是一个线程崩溃,整个进程就会连同其任何线程一块儿挂掉浏览器

2、Apache Web服务器安装服务器

[root@localhost tools]# wget http://archive.apache.org/dist/httpd/httpd-2.4.29.tar.gz 负载均衡

[root@localhost tools]# tar -xzvf  httpd-2.4.29.tar.gz socket

[root@localhost tools]# cd httpd-2.4.29ide

[root@localhost httpd-2.4.29]# yum install apr apr-devel apr-util apr-util-devel -y性能

[root@localhost httpd-2.4.29]# ./configure --prefix=/usr/local/apache2/ --enable-rewrite --enable-so

image.png

[root@localhost httpd-2.4.29]# make     # 编译

[root@localhost httpd-2.4.29]# make install   #安装

[root@localhost local]# /usr/local/apache2/bin/apachectl  start    

测试:

image.png

3、Apache虚拟主机企业应用

Web虚拟主机配置方法有如下三种:

1.基于单IP多个socket端口

2.基于多IP地址一个端口

3.基于单IP一个端口不一样域名。

实战步骤以下:

[root@localhost conf]# pwd
/usr/local/apache2/conf
[root@localhost conf]# vim httpd.conf
......
# Virtual hosts
Include conf/extra/httpd-vhosts.conf  #去掉前面的#号便可
......
[root@localhost extra]# pwd
/usr/local/apache2/conf/extra
[root@localhost extra]# vim httpd-vhosts.conf
<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "/usr/local/apache2//docs/dummy-host.example.com"
    ServerName dummy-host.example.com
    ServerAlias www.dummy-host.example.com
    ErrorLog "logs/dummy-host.example.com-error_log"
    CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost>
<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host2.example.com
    DocumentRoot "/usr/local/apache2//docs/dummy-host2.example.com"
    ServerName dummy-host2.example.com
    ErrorLog "logs/dummy-host2.example.com-error_log"
    CustomLog "logs/dummy-host2.example.com-access_log" common
</VirtualHost>

建立www.sky9890.com及www.sky9899.com发布目录,重启Apache服务,并分别建立index.html页面,命令如下:

[root@localhost extra]# mkdir -p /usr/local/apache2/htdocs/{sky9890,sky9899}/
[root@localhost extra]# echo "<h1>www.sky9890.com Pages</h1>">/usr/local/apache2/htdocs/sky9890/index.html
[root@localhost extra]# echo "<h1>www.sky9899.com Pages</h1>">/usr/local/apache2/htdocs/sky9899/index.html
修改配置文件:[root@localhost extra]# vim httpd-vhosts.conf

<VirtualHost *:80>  #虚拟机80端口
 ServerAdmin 553752017@qq.com    #管理员邮箱
 DocumentRoot "/usr/local/apache2/htdocs/sky9890"  #虚拟主机发布目录。
 ServerName www.sky9890.com       #虚拟主机完整域名
 # ServerAlias www.dummy-host.example.com   #别名
 RewriteCond %{HTTP_HOST} www.sky9890.com  [NC,OR]   #NC表示不区分大小写,OR表式或。
 RewriteCond %{HTTP_HOST} www.sky9899.com [NC,OR]
 RewriteCond %{HTTP_HOST} ^sky9899.com [NC,OR]
 RewriteCond %{HTTP_HOST} ^sky9890.com [NC,OR]
 RewriteRule ^/(.*)$ http://www.51cto.com  [L] #L表示最后一条匹配规则,中止匹配后续规则。将www.sky9890.com、www.sky9899.com、sky9899.com、sky9890.com跳转至www.51cto.com
 ErrorLog "logs/www.sky9890.com_error_log"
 CustomLog "logs/www.sky9890.com_access_logg" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin  553752017@qq.com
DocumentRoot "/usr/local/apache2/htdocs/sky9899"
ServerName  www.sky9899.com
RewriteCond %{HTTP_HOST} www.sky9890.com  [NC,OR]
RewriteCond %{HTTP_HOST} www.sky9899.com [NC,OR]
RewriteCond %{HTTP_HOST} ^sky9890.com [NC]
RewriteRule ^/(.*)$ http://www.51cto.com  [L]
ErrorLog "logs/www.sky9899.com_error_log"
CustomLog "logs/www.sky9899.com_access_log" common
</VirtualHost>

4、Apache rewrite规则实战

1.rewrite规则也称为规则重写,主要功能实现浏览器访问HTTP URL的跳转。

2.rewrite规则重写的用途以下:

1)对搜索引擎优化友好,利于搜索引擎页面。

2)隐藏网站URL真实地址,浏览器显示更加美观。

3)网站变动升级,能够基于rewrite临时重定向到其余页面。

5、其余配置技能

1)LoadModule rewrite_module modules/mod_rewrite.so  #http.conf配置文件中找到该条并把前面的#号去掉。

2)虚拟主机配置段设置如该指令来开启rewrite功能:RewriteEngine on

3)AllowOverride None,改为AllowOverride All

4)将rewrite规则要写入到httpd-vhosts.conf文件中,要写在<VirtualHost *:80>......</VirtualHost>

5)%{ 两符号之间是不能有空格的,不然执行无效果。

6)Windows客户端设置hosts映射,www.sky9890.com、www.sky9899.com与192.168.153.142进行映射绑定,映射的目的将域名跟IP进行绑定,配置以下:

C:\Windows\System32\drivers\etc\hosts    #用记事本打开hosts文件,并添加下列行
192.168.153.142  www.sky9890.com
192.168.153.142  www.sk9899.com
192.168.153.142  sky9890.com
192.168.153.142  sky9899.com

6、测试结果以下:

在浏览器中分别输入上述四个地址,都会自动跳转到以下界面:

图片.png

相关文章
相关标签/搜索