欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

世界上最流行的Web服务器软件之一Apache服务

程序员文章站 2022-07-15 14:03:13
...

1.apche服务

Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一
Apache取自“a patchy server”的读音,意思是充满补丁的服务器,因为它是*软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。
本来它只用于小型或试验Internet网络,后来逐步扩充到各种Unix系统中,尤其对Linux的支持相当完美。Apache有多种产品,可以支持SSL技术,支持多个虚拟主机。Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。到目前为止Apache仍然是世界上用的最多的Web服务器,市场占有率达60%左右。世界上很多著名的网站如Amazon、Yahoo!、W3 Consortium、Financial Times等都是Apache的产物,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、Windows、Linux系统平台上)以及它的可移植性等方面。

Apacheweb服务器软件拥有以下特性

Apache Server配置界面
Apache Server配置界面
1.支持最新的HTTP/1.1通信协议
2.拥有简单而强有力的基于文件的配置过程
3.支持通用网关接口
4.支持基于IP和基于域名的虚拟主机
5.支持多种方式的HTTP认证
6.集成Perl处理模块
7.集成代理服务器模块
8.支持实时监视服务器状态和定制服务器日志
9.支持服务器端包含指令(SSI)
10.支持安全Socket层(SSL)
11.提供用户会话过程的跟踪
12.支持FastCGI
13.通过第三方模块可以支持JavaServlets

#企业中常用的web服务,用来提供http://(超文本传输协议)

2.apache的安装部署

yum install httpd -y		##apache软件

世界上最流行的Web服务器软件之一Apache服务
世界上最流行的Web服务器软件之一Apache服务
世界上最流行的Web服务器软件之一Apache服务

yum install httpd-manual ##apache的手册

世界上最流行的Web服务器软件之一Apache服务
世界上最流行的Web服务器软件之一Apache服务

systemctl start httpd 
systemctl enable httpd 

世界上最流行的Web服务器软件之一Apache服务

    firewall-cmd --list-all				##列出火墙信息
    firewall-cmd --permanent --add-service=http	##永久允许http
    firewall-cmd --reload				##火墙从新加载策略

世界上最流行的Web服务器软件之一Apache服务

/var/www/html			##apache的/目录,默认发布目录
/var/www/html/index.html	##apache的默认发布文件
vim /var/www/html/index.html

世界上最流行的Web服务器软件之一Apache服务

<h1> hello world </h1>
测试 	http://172.25.254.100

世界上最流行的Web服务器软件之一Apache服务
世界上最流行的Web服务器软件之一Apache服务

3.apache的基础信息

#主配置目录: /etc/httpd/conf
#主配置文件: /etc/httpd/conf/httpd.conf
#子配置目录: /etc/httpd/conf.d/
#子配置文件: /etc/httpd/conf.d/.conf
#默认发布目录: /var/www/html
#默认发布文件: index.html
#默认端口: 80
#默认安全上下文:httpd_sys_content_t
#程序开启默认用户: apache
#apache日志: /etc/httpd/logs/

修改默认端口:

vim /etc/httpd/conf/httpd.conf
42 Listen 8080		##修改默认端口为8080

世界上最流行的Web服务器软件之一Apache服务

     firewall-cmd --permanent --add-port=8080/tcp 让火墙也允许这个端口
     firewall-cmd --reload 
     netstat -antlupe | grep httpd 查看已经开启的端口
     semanage port -l | grep http 查看允许开启的端口

世界上最流行的Web服务器软件之一Apache服务
测试:
世界上最流行的Web服务器软件之一Apache服务
世界上最流行的Web服务器软件之一Apache服务

修改非默认端口

vim /etc/httpd/conf/httpd.conf
43 Listen 6667		##修改默认端口为6667

世界上最流行的Web服务器软件之一Apache服务

在ssh为permsive时可以通过端口访问地址,但是在enforcing的情况下就不行,
世界上最流行的Web服务器软件之一Apache服务
世界上最流行的Web服务器软件之一Apache服务

 semanage port -a -t http_port_t -p tcp 6667 添加并不被允许的端口

这样,即使是在强制情况下也可以访问地址
世界上最流行的Web服务器软件之一Apache服务

修改默认发布文件:
默认发布文件就是访问apache时没有指定文件名称时默认访问的文件
这个文件可以指定多个,有访问顺序

vim /etc/httpd/conf/httpd.conf
164     DirectoryIndex index.html test.html	##当index.html不存在时访问test.html

世界上最流行的Web服务器软件之一Apache服务
世界上最流行的Web服务器软件之一Apache服务
世界上最流行的Web服务器软件之一Apache服务
世界上最流行的Web服务器软件之一Apache服务

修改默认发布目录:

mkdir -p /westos/html
vim idenx.html 

世界上最流行的Web服务器软件之一Apache服务

vim /etc/httpd/conf/httpd.conf
120 DocumentRoot "/www/html"

世界上最流行的Web服务器软件之一Apache服务

访问会没有权限

世界上最流行的Web服务器软件之一Apache服务

ll /westos/html
添加权限
121 <Directory "/www/html">
122         Require all granted
123 </Directory>

世界上最流行的Web服务器软件之一Apache服务

但是这只是在setenfoce 0 的时候才能访问

世界上最流行的Web服务器软件之一Apache服务
世界上最流行的Web服务器软件之一Apache服务

    想要在强制情况enforcing的情况下访问就得改安全上下文
    semanage fcontext -a -t httpd_sys_content_t '/www(/.*)?'
    rstorecon -RvvF /www/

世界上最流行的Web服务器软件之一Apache服务
访问:
世界上最流行的Web服务器软件之一Apache服务

4.apache的虚拟主机(让一台apache主机有多个站点)

vim /etc/httpd/conf.d/vhost.conf 子配置目录下建立子配置文件
<VirtualHost _default_:80>
	DocumentRoot "/var/www/html"
	CustomLog "logs/default.log" combined
</VirtualHost>

世界上最流行的Web服务器软件之一Apache服务

mkdir  -p/var/www/vhost/news
mkdir  -p /var/www/vhost/music

世界上最流行的Web服务器软件之一Apache服务

vim /var/www/vhost/news/index.html

世界上最流行的Web服务器软件之一Apache服务

vim /var/www/vhost/music/index.html

世界上最流行的Web服务器软件之一Apache服务

vim /etc/httpd/conf.d/vhost.conf

<VirtualHost *:80>
	ServerName news.westos.com	#指定站点名称
	DocumentRoot "/var/www/vhost/news.westos.com/html/"	#站点默认发布目录
	CustomLog "logs/news.westos.com.logs" combined		#站点日志combined标示四种日志的集合
</VirtualHost>
<Directory "/var/www/vhost/news.westos.com/html/">
	Require all granted
</Directory>

vim /etc/httpd/conf.d/c.conf 
<VirtualHost *:80>
	ServerName music.westos.com
	DocumentRoot "/var/www/vhost/music.westos.com/html/"
	CustomLog "logs/music.westos.com.logs" combined
</VirtualHost>
<Directory "/var/www/vhost/music.westos.com/html/">
	Require all granted
</Directory>

测试:
**在测试主机中作好本地解析

vim /etc/hosts
172.25.254.100 news.westos.com 
 172.25.254.100 music.westos.com 

世界上最流行的Web服务器软件之一Apache服务
世界上最流行的Web服务器软件之一Apache服务
世界上最流行的Web服务器软件之一Apache服务

5.apache内部的访问控制

1.针对与主机的访问控制

设置白名单,只有172.25.254.105可以访问地址

 <Directory "/var/www/html">
           Order Deny,Allow		列表读取顺序,后读取的列表会覆盖限度去内容的重复部分
           Allow from 172.25.254.105
          Deny from all
   </Directory>

世界上最流行的Web服务器软件之一Apache服务

设置黑名单,只有172.25.254.72不可以访问地址

   <Directory "/var/www/html">
           Order Allow,Deny		列表读取顺序,后读取的列表会覆盖限度去内容的重复部分
           Allow from all
           Deny from 172.25.254.105
   </Directory>

世界上最流行的Web服务器软件之一Apache服务

2.用户方式的访问控制

htpasswd -cm	/etc/httpd/.apache_auth	admin

世界上最流行的Web服务器软件之一Apache服务
世界上最流行的Web服务器软件之一Apache服务

再次添加用户的时候不加“-c”,要不然就会覆盖之前的用户

世界上最流行的Web服务器软件之一Apache服务

htpasswd -m 	/etc/httpd/.apache_auth	admin1

世界上最流行的Web服务器软件之一Apache服务

vim adefault.conf
  <Directory "/var/www/html/admin">
          AuthUserFile /etc/httpd/.apache_auth
         AuthName "Please input your name and password"
          AuthType basic
        Require user  admin 允许这个用户访问地址
         Require valid-user  允许所有用户访问地址
 </Directory>

世界上最流行的Web服务器软件之一Apache服务
世界上最流行的Web服务器软件之一Apache服务

测试:
世界上最流行的Web服务器软件之一Apache服务

世界上最流行的Web服务器软件之一Apache服务
世界上最流行的Web服务器软件之一Apache服务
世界上最流行的Web服务器软件之一Apache服务

6.apache支持的语言

1.html
2.php

vim /var/www/html/index.php
<?php
	phpinfo();
?>

世界上最流行的Web服务器软件之一Apache服务

vim /etc/httpd/conf.d/http.conf

世界上最流行的Web服务器软件之一Apache服务
世界上最流行的Web服务器软件之一Apache服务

php  index.html 找不到

世界上最流行的Web服务器软件之一Apache服务

yum install php -y

世界上最流行的Web服务器软件之一Apache服务

systemctl restart httpd 
php  index.html

世界上最流行的Web服务器软件之一Apache服务

测试:

172.25.254.100/index.php

世界上最流行的Web服务器软件之一Apache服务

3.cgi
世界上最流行的Web服务器软件之一Apache服务
世界上最流行的Web服务器软件之一Apache服务

mkdir -p /var/www/html/cgi
vim /var/www/html/cgi/index.cgi
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print `date`;

世界上最流行的Web服务器软件之一Apache服务
世界上最流行的Web服务器软件之一Apache服务

chmod +x /var/www/html/cgi/index.cgi
./index.cgi	#执行下脚本确保脚本运行正常

世界上最流行的Web服务器软件之一Apache服务

vim vhost.conf
 17 <Directory "/var/www/html/cgi">
 18         Options +ExecCGI
 19         AddHandler cgi-script .cgi
 20 </Directory>
systemctl restart httpd 

世界上最流行的Web服务器软件之一Apache服务
世界上最流行的Web服务器软件之一Apache服务
世界上最流行的Web服务器软件之一Apache服务
测试:只有在ssh为警告(prmisive)的情况下才可以访问
世界上最流行的Web服务器软件之一Apache服务
当改了安全上下文之后就可以在强制(enforcing)的情况下访问

semanage fcontent -a -t  httpd_sys_script_exec_t '/var/www/html/cgi(/.*)?'
restorecon -RvvF /var/www/html/cgi/

世界上最流行的Web服务器软件之一Apache服务
世界上最流行的Web服务器软件之一Apache服务

4.wsgi

cd /var/www/cgi-bin/
wget ftp://172.25.254.250:/pub/webapp.wsgi
ls

世界上最流行的Web服务器软件之一Apache服务

python webapp.wsgi不能调用脚本

世界上最流行的Web服务器软件之一Apache服务

  yum install mod_wsgi -y

世界上最流行的Web服务器软件之一Apache服务

vim /etc/httpd/conf.d/vhost.conf
<VirtualHost _default_:80>
        ServerName wsgi.westos.com
        WSGIScriptAlias / /var/www/cgi/webapp.wsgi
</VirtualHost>

世界上最流行的Web服务器软件之一Apache服务

systemctl restart httpd 

测试:

做好本地解析
vim /etc/hosts
172.25.254.105 wsgi.westos.com

浏览器输入:wsgi.westos.com

世界上最流行的Web服务器软件之一Apache服务

7.https的加密访问

了解一下:
HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer 或 Hypertext Transfer Protocol Secure,超文本传输安全协议)**,是以安全为目标的HTTP通道,简单讲是HTTP的安全版。**即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统的最初研发由网景公司(Netscape)进行,并内置于其浏览器Netscape Navigator中,提供了身份验证与加密通讯方法。现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。

yum install mod_ssl -y

世界上最流行的Web服务器软件之一Apache服务

yum install crypto-utils -y

netstat -antlupe | grep httpd 锁需要开启443端口
vim /etc/httpd/conf.d/ssl.conf
5 Listen 443 https
火墙允许https服务
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
世界上最流行的Web服务器软件之一Apache服务
世界上最流行的Web服务器软件之一Apache服务
https://172.25.254.111 错误
世界上最流行的Web服务器软件之一Apache服务
删除它原本的锁
yum install crypto-utils -y 安装自己的锁世界上最流行的Web服务器软件之一Apache服务

genkey apache_server.westos.com 生成自己的锁和钥匙
会弹出图形界面,填完就会生成锁和钥匙

世界上最流行的Web服务器软件之一Apache服务
世界上最流行的Web服务器软件之一Apache服务
世界上最流行的Web服务器软件之一Apache服务
世界上最流行的Web服务器软件之一Apache服务
世界上最流行的Web服务器软件之一Apache服务
世界上最流行的Web服务器软件之一Apache服务

世界上最流行的Web服务器软件之一Apache服务

vim /etc/httpd/conf.d/ssl.conf 
101 SSLCertificateFile /etc/pki/tls/certs/apache_server.westos.com.crt
109 SSLCertificateKeyFile /etc/pki/tls/private/apache_server.westos.com.key
systemctl restart httpd

世界上最流行的Web服务器软件之一Apache服务
世界上最流行的Web服务器软件之一Apache服务

8设定https虚拟主机并设定网页重写

就是当你输入到login.westos.com 它其实会是htpps://login.westos.com

世界上最流行的Web服务器软件之一Apache服务

cd /etc/httpd/conf.d
vim vhost_https.conf
  <VirtualHost *:443>
         ServerName login.westos.com
           DocumentRoot /var/www/html/virtual/login.westos.com/html
       CustomLog "logs/login.logs" combined
        SSLEngine on
         SSLCertificateFile  /etc/pki/tls/certs/apache_server.westos.com.crt
       SSLCertificateKeyFile /etc/pki/tls/private/apache_server.westos.com.key
 </VirtualHost>
 <Directory "/var/www/html/vhost/login">
          Require all granted
</Directory>



mkdir -p /var/www/vhost/login建立默认发布目录
vim /var/www/vhost/login/index.html建立默认发布文件

世界上最流行的Web服务器软件之一Apache服务

本地解析: vim /etc/hosts  
 172.25.254.105 login.westos.com

只有输入完整的网址才可以访问
世界上最流行的Web服务器软件之一Apache服务

世界上最流行的Web服务器软件之一Apache服务

世界上最流行的Web服务器软件之一Apache服务

^(/.*)$		       ##客户在浏览器地址栏中输入的所有字符
https://	       ##强制客户加密访问
%{HTTP_HOST}	   ##客户请求主机
$1		           ###"$1"标示 ^(/.*)$的值
[redirect=301]	   ##永久重写 302临时