文章目录

  • Apache是什么?
  • Apache基本设置
  • Apache的安装部署
  • Apache的相关文件
  • 修改Apache的配置
  • 修改默认端口
  • 修改默认发布目录
  • 修改默认发布文件
  • Apaache的虚拟主机配置
  • 虚拟主机是什么
  • 虚拟主机配置
  • 基于ip的虚拟主机的访问控制的黑白名单
  • 基于认证的虚拟主机的访问控制的黑白名单
  • Apache支持的语言
  • php语言设置
  • python语言设置
  • perl 语言


Apache是什么?

1.Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一,它主要用来提供http协议
2.它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。
3.Apache音译为阿帕奇,是北美印第安人的一个部落,叫阿帕奇族,在美国的西南部。也是一个基金会的名称、一种武装直升机等等。
4.可以使用curl -I www.taobao.com 或者curl -I (大写的i)www.baidu.com 来嗅探以下主流网站使用的服务器软件,发现主要有Apache(稳定),nginx(快速)还有自己公司开发的。

Apache基本设置

Apache的安装部署

实验背景
在已经配置好本地yum源的desktop主机上。

实验步骤
1.安装apache

yum search apache
yum install  httpd.x86_64
systemctl start httpd
ssytemctl enable httpd
firewall-cmd --permanent --add-service=http #永久允许http
firewall-cmd --reload
firewall-cmd --list-all



nginx和阿帕奇有啥区别_apache


nginx和阿帕奇有啥区别_html_02

2.

nginx和阿帕奇有啥区别_html_03

3.

nginx和阿帕奇有啥区别_apache_04


测试:

cd /var/www/html/
vim index.html  
添加 <h1>testapache</h1>

在浏览器中输入
http://172.25.254.110

nginx和阿帕奇有啥区别_nginx和阿帕奇有啥区别_05

nginx和阿帕奇有啥区别_vim_06

Apache的相关文件

rpm -ql httpd #查看下载apache时系统存在的目录和文件
rpm -qc httpd #查看apache的配置文件

netstat -antlpue | grep httpd  #查看apache的默认端口
主配置目录: /etc/httpd/conf
主配置文件: /etc/http/conf/httpd.conf

子配置目录: /etc/httpd/conf.d/
子配置文件: /etc/httpd/conf.d/*.conf  .conf  都会被读,因此不要出错
默认发布目录: /var/www/html
默认发布文件:index.html #默认是index.html 里的内容被访问

默认端口: 80
默认安全上下文:http_sys_content_t
程序开启默认用户: apache
apache 日志:/etc/httpd/logs/ *


nginx和阿帕奇有啥区别_apache_07

nginx和阿帕奇有啥区别_apache_08

2.

nginx和阿帕奇有啥区别_Apache_09

3.

nginx和阿帕奇有啥区别_vim_10

修改Apache的配置

修改默认端口

当selinux 为关闭 或者警告时 可以改端口为6666,为强制时 不可以。
需要改selinux 安全上下文和防火墙。

1.vim /etc/httpd/conf/httpd.conf
修改Listen 为6666
2.semanage port -l | grep http #发现selinux 默认不允许6666,这里出现的端口,除了80,其他都可以很便捷的更改
3.semanage port  -a -t http_port_t -p tcp 6666
4.systemctl restart httpd
5.firewall-cmd --permanent --add-port=6666/tcp  #修改火墙策略
firewall-cmd --reload


nginx和阿帕奇有啥区别_nginx和阿帕奇有啥区别_11


2.

nginx和阿帕奇有啥区别_vim_12


3.添加成功

nginx和阿帕奇有啥区别_html_13

测试:

在浏览器中输入 172.25.254.110:6666

nginx和阿帕奇有啥区别_nginx和阿帕奇有啥区别_14


注意:

selinux 关闭时不能对安全上下文进行更改

修改默认发布目录

1.mkdir  -p /westos/html
cd  /westos/html/

2.vim index.html
添加
text morenmulu

3.ls -Zd /westos/
semanage fcontext -a -t httpd_sys_content_t '/westos(/.*)?'
restorecon -RvvF  /westos

4.vim /etc/httpd/conf/httpd.conf
更改
120 行 DocumentRoot  "/westos/html"
做授权
<Directory "/westos">
Require all granted
</Directory>

5. systemctl restart httpd

1.

nginx和阿帕奇有啥区别_Apache_15

nginx和阿帕奇有啥区别_Apache_16


2.

nginx和阿帕奇有啥区别_apache_17

nginx和阿帕奇有啥区别_html_18


测试:

172.25.254.110 查看内容

nginx和阿帕奇有啥区别_html_19

修改默认发布文件

修改默认发布文件就是访问apache时没有指定文件名称时默认访问的文件,这个文件可以指定多个,有访问顺序。
我们改的配置是它的默认文件 也就是输入172.25.254,110 之后自动访问的文件和目录。

建立 /var/www/html/westos.html
添加westos.html

vim /etc/httpd/conf/httpd.conf
更改
166行左右
DirectoryIndex westos.html  index.html #更改默认访问文件时,如果第一个文件不在 就依次向下寻找

1.

nginx和阿帕奇有啥区别_apache_20

添加westos.html

nginx和阿帕奇有啥区别_html_21

测试:

nginx和阿帕奇有啥区别_Apache_22

Apaache的虚拟主机配置

虚拟主机是什么

虚拟主机指的是在单一机器上运行多个网站 (例如 company1.example.com 和 company2.example.com) 。

虚拟主机可以“基于 IP”,即每个 IP 一个站点; 或者“基于名称”, 即每个 IP 多个站点。

这些站点运行在同一物理服务器上的事实不会明显的透漏给最终用户。

Apache 是第一个支持基于 IP 的虚拟主机的服务器。

Apache 版本 1.1 和更新的版本同时支持基于 IP 和基于名称的虚拟主机。
基于名称的虚拟主机有时候称为基于主机或非 IP 的虚拟主机.

虚拟主机配置

首先将上个实验对httpd主配置文件的更改还原至默认

1.cd /etc/httpd/conf.d/
vim vhost.conf
添加内容如截图所示
2.systemctl restart  httpd
3.mkdir -p /var/www/virtual/westos.org/{music,news}
4.touch /var/www/virtual/westos.org/{music,news}/index.html
5.vim /var/www/virtual/westos.org/music/index.html
添加  music
6.vim /var/www/virtual/westos.org/news/index.html

添加news
7.systemctl restart httpd

8.vim /etc/hosts  添加主机
172.25.254.110 www.westos.org news.westos.org music.westos.org
#浏览器在哪 在哪里添加此解析

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

nginx和阿帕奇有啥区别_html_23

2.

nginx和阿帕奇有啥区别_Apache_24

3.在上述文件中分别添加内容music和news

nginx和阿帕奇有啥区别_Apache_25


4.编辑/etc/hosts文件

nginx和阿帕奇有啥区别_html_26

nginx和阿帕奇有啥区别_vim_27

测试

在浏览器中输入
www.westos.org
news.westos.org
music.westos.org

nginx和阿帕奇有啥区别_Apache_28


nginx和阿帕奇有啥区别_vim_29

nginx和阿帕奇有啥区别_Apache_30


注意:

做虚拟主机实验时,注意文件与防火墙的端口应该一致

基于ip的虚拟主机的访问控制的黑白名单

vim /etc/httpd/conf.d/vhost.conf
添加
<Directory "/var/www/html">
Order deny,allow
Allow from all
Deny from 172.25.254.110
</Directory>
#表明先看deny名单  再看allow名单
此时allow名单会把deny名单覆盖掉。可根据需要自己调整
#表明对此/var/www/html资源(目录)进行访问控制,其他两个资源不受影响,只所
以选择此目录做实验,是因为在实验时,若连接的是其他人的主机,就不用做解析了。

nginx和阿帕奇有啥区别_nginx和阿帕奇有啥区别_31

上图表明任何主机都可

nginx和阿帕奇有啥区别_Apache_32

基于认证的虚拟主机的访问控制的黑白名单

1.cd /etc/httpd/

添加用户和密码   .htpasswdfile 的点代表隐藏文件
2.   htpasswd -cm .htpassfile(文件名称可以随便起) admin(用户名称可以随便起)
3.   htpasswd -m .htpassfile admin1 #当添加完一个用户之后,再添加用户时,不能再加 -cm 应该是-m,否则新添加的会把上一次添加的用户覆盖掉。
4.cat   .htpassfile

5.vim /etc/httpd/conf.d/vhost.conf
添加:
<Directory "/var/www/html">
AuthUserFile /etc/httpd/.htpasswdfile
Authtype basic #代表最基本的密码认证
AuthName "please input username and passwd" #是在浏览器里认证框里提示的话语
Require valid-user
</Directory>

注意:
方式一:Require user  admin  代表只允许admin认证,对其他用户没有授权
方式二:Require  valid-user  代表使得htpassfile里的用户都可以使用认证登陆。


nginx和阿帕奇有啥区别_html_33

2.

nginx和阿帕奇有啥区别_Apache_34

3.

nginx和阿帕奇有啥区别_Apache_35

测试:
172.25.254.110

注意:
在浏览器中实验成功一次之后,记得清楚浏览器的history 缓存。

Apache支持的语言

Apache除了默认支持html语言。
做相应配置还可支持 php perl python语言。

php语言设置

yum install php -y #下载php插件
systemctl restart httpd

1.vim /var/www/html/index.php
添加 任何php语言 这里以一个测试页为例
<?php
phpinfo();
?>

2.vim /etc/httpd/conf.d/vhost.conf
注释掉<Directory "/var/www/html"
3.systemctl restart httpd

测试:
在浏览器中输入
172.25.254.110/index.php

1.

nginx和阿帕奇有啥区别_nginx和阿帕奇有啥区别_36

2.

nginx和阿帕奇有啥区别_Apache_37

3.在index.php里输入php代码

nginx和阿帕奇有啥区别_html_38


nginx和阿帕奇有啥区别_html_39

4.测试:浏览器输入172.25.254.110/index.php

nginx和阿帕奇有啥区别_html_40

python语言设置

I

实验步骤:

3.yum search wsgi
4.yum install mod_wsgi.x86_64 -y
5.将自己的测试python 脚本(scripts.wsgi)放在/var/www/html目录下
6.chmod +x script.wsgi
7.vim /etc/httpd/conf.d/vhost.conf
添加

WSGIScriptAlias /WSGI  /var/www/html/script.wsgi  #表示在浏览器中输入/WSGI时,去找后面的文件

测试:
172.25.254.110/WSGI

1.

nginx和阿帕奇有啥区别_Apache_41


wsgi是什么?

Web服务器网关接口(Python Web Server Gateway Interface,缩写为WSGI)是为Python语言定义的Web服务器和Web应用程序或框架之间的一种简单而通用的接口

perl 语言

yum install httpd-manual #下载httpd的帮助手册
systemctl restart httpd
在浏览器里
172.25.254.110/manual/
点击CGI——
查看CGI的实例命令

nginx和阿帕奇有啥区别_apache_42


nginx和阿帕奇有啥区别_nginx和阿帕奇有啥区别_43


CGI是什么?

公共网关接口(Common Gateway Interface,CGI)是Web 服务器运行时外部程序的规范,按CGI 编写的程序可以扩展服务器功能。

CGI 应用程序能与浏览器进行交互,还可通过数据API与数据库服务器等外部数据源进行通信,从数据库服务器中获取数据。

格式化为HTML文档后,发送给浏览器,也可以将从浏览器获得的数据放到数据库中。几乎所有服务器都支持CGI,可用任何语言编写CGI

ls -Zd /var/www/cgi-bin/
mkdir /var/www/html/cgi
ls -Zd /var/www/html/cgi
semanage fcontext -a -t htppd_sys_script_exec_t "/var/www/html(/.*cgi)?"
restorecon -FvvR /var/www/html/cgi/

cd /var/www/html/cgi/
vim index.cgi
添加 一个perl程序
chmod +x index.cgi
./index.cgi #测试文件内容是否正确

nginx和阿帕奇有啥区别_apache_44

nginx和阿帕奇有啥区别_apache_45

1.vim /etc/httpd/conf.d/vhost.conf
添加
<Directory "/var/www/html/cgi">
 Options +ExcecCGI         #直接从http_manual文件复制
 AddHandler cgi-script .cgi
</Directory>

2.systemctl restart httpd

nginx和阿帕奇有啥区别_Apache_46

测试:

在浏览器中输入172.25.254.110/index.cgi

nginx和阿帕奇有啥区别_nginx和阿帕奇有啥区别_47