Linux 下 Apache 服务程序的部署

首先了解一下络服务

我们平时访问的站服务就是 Web 络服务,一般是指允许用户通过浏览器访问到互联中各种资源的服务。Web 络服务是一种被动访问的服务程序,即只有接收到互联中其他主机发出的请求后才会响应,最终用于提供服务程序的 Web 服务器会通过 HTTP(超文本传输协议)或 HTTPS(安全超文本传输协议)把请求的内容传送给用户

  • 目前能够提供 Web 络服务的程序有 IIS、Nginx 和 Apache 等
    • IIS(Inter Information Services)互联信息服务是由微软公司提供的基于运行Microsoft Windows的互联基本服务
    • Nginx(engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的页服务器中表现较好,中国大陆使用nginx站用户有:百度、京东、、易、腾讯、等
    • Apache 是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中

接下来就讲述 Linux 下Apache 服务程序的部署(在 SELinux permissive 或 disabled 的情况下进行操作)

1. 安装 apache 客户端并了解其基本配置服务的文件参数

1.1 对 apache 客户端进行安装

服务安装完成,开启服务,关闭防火墙,可以在浏览器中输入主机 ip 进行查看 /var/ 的信息
执行如下:
安装完成后查看服务端口

配置文件(/etc/httpd/conf/httpd.conf)的第 42 行管理其默认端口

在浏览器中查看

第一句话说明:该页面用于测试 Apache HTTP 服务器安装后的正确操作。如果您能够阅读这个页面,这意味着在这个站点上安装的 Apache HTTP 服务器工作正常。

1.2 apache 基本服务文件参数管理

httpd 服务基本配置完成,其基本服务文件参数如下:

服务目录 /etc/httpd
主配置文件 /etc/httpd/conf/httpd.conf
默认发布目录/var/
访问日志 /var/log/httpd/access_log
错误日志 /var/log/httpd/error_log
默认发布文件 /var/

可以通过编辑配置文件修改其默认发布目录与默认发布文件

1.2.1 默认发布文件管理

apache 的默认发布文件可通过主配置文件进行修改

执行如下:
主配置文件 /etc/httpd/conf/httpd.conf 关于默认发布文件的内容:

在 /var/ 编辑 index.html 文件,在浏览器中查看效果
编辑内容如下:

浏览器中查看效果:

修改默认发布文件
编辑配置文件 vim /etc/httpd/conf/httpd.conf

执行如下:
修改配置文件设置默认访问文件为 test.html

在 /var/ 编辑 test.html

在浏览器中查看效果

原来的发布文件 /var/ 可以通过在浏览器中输入 “apache 服务器 IP/index.html”来查看

1.2.1 默认发布目录管理

修改默认发问目录:

执行如下:
创建目录,编辑配置文件并重启服务

编辑默认发布文件内容:
/test/html 默认发布文件 test.html 内容

/test/html/lin 默认发布文件 index.html 内容

配置文件内容如下:

在浏览器中查看
/test/html

/test/html/lin

由上可知,子目录的默认发布文件可以进行自行规定,若是不指定则是全局规定的默认发布文件

2. Apache 服务的访问限制

对 Apache 服务的访问可以过 IP 或者用户建立进行限制
还原上述默认发布文件及目录的修改

2.1 基于 IP 的访问限制

执行如下:
建立目录与文件

发布文件内容

禁止 IP 172.25.151.50 访问

在浏览器中查看
IP 为 172.25.151.250 的用户可以查看

IP 为 172.25.151.50 的用户,可以访问 /var/ 但不可访问被限制的目录 /var/

2.2 基于用户的访问限制

建立创建访问用户
在 /etc/httpd/ 下进行操作

执行如下:
创建用户

编辑配置文件,只允许用户 lin 进行访问,若想允许所有用户访问可将第 134行修改为 允许所有可用用户进行访问

在浏览器中查看效果:
输入不被允许的用户 juan 的用户名密码,或是不输入,则会显示如下

错误信息提示:
此服务器无法验证您是否被授权访问所请求的文档。要么您提供了错误的凭据(例如,错误的密码),要么您的浏览器不理解如何提供所需的凭据。

输入允许访问的用户 lin 的用户名密码,访问成功

2. Apache 服务单 IP 多节点测试页面部署(虚拟主机)

我们同过固定 IP 来进行Apache 服务访问站点的建立,一个 IP 只能作为一个访问页面,是对络资源的浪费,因此可以使用一个 IP 发布多个节点的测试页来解决此问题

2.1 编辑本地解析(在浏览器所在主机编辑)

编辑浏览器所在的本地解析文件 /etc/hosts

执行如下:

2.2 为各个节点编辑配置文件

在 /etc/httpd/conf.d/ apache的子配置目录中添加编辑 default.conf文件

执行如下:
目录、文件创建完成后,进行编辑
编辑music.server. nba.server. 的发布文件
nba.server. 的发布文件

music.server. 的发布文件

编辑配置文件
/etc/httpd/conf.d/default.conf

/etc/httpd/conf.d/music.conf

/etc/httpd/conf.d/nba.conf

在浏览器中进行查看
输入 访问 /var/

输入 nba.server. 访问 /var/

输入 music.server. 访问 /var/

3. Apache 服务 https 认证加密证书,密钥

  • HTTP 缺省工作在 TCP 协议 80 端口,用户访问站 http:// 打头的都是标准 HTTP 服务,HTTP 所封装的信息是明文的,通过抓包工具可以分析其信息内容,如果这些信息包含有你的银行卡帐号、密码,你肯定无法接受这种服务,HTTPS 就是可以加密这些敏感信息的服务
  • HTTPS 缺省工作在 TCP 协议 443 端口,它的工作流程一般如以下方式:
    (1)完成TCP三次同步握手
    (2)客户端验证服务器数字证书,通过,进入步骤3
    (3)DH算法协商对称加密算法的密钥、hash算法的密钥
    (4)SSL安全加密隧道协商完成
    (5)页以加密的方式传输,用协商的对称加密算法和密钥加密,保证数据机密性;用协商的hash算法进行数据完整性保护,保证数据不被篡改
    如果HTTPS是银服务,以上SSL安全隧道成功建立才会要求用户输入账户信息,账户信息是在安全隧道里传输,所以不会泄

具体操作如下:

具体执行如下:
安装完成后执行 keygen

显示如下:
1. 您现在正在生成一个新的密钥对,它将用于加密所有SSL通信到名为的服务器。您还可以创建一个证书请求并将其发送到证书颁发机构(CA)进行签名。
会生成 /etc/pki/tls/private/ 密钥文件
/etc/pki/tls/certs/ 证书文件

2. 这里用来选择密钥的大小,密钥大小不得小于1024 bit
512(不安全);
1024(低级的,速度快);
2048(中等安全,中等速度,推荐);
4096(高安全性,速度慢);

3. 生成随机比特

4. 为了从内核随机数生成器生成2048个随机位,在这个主机的控制台可能需要一些键盘或鼠标输入。如果在本地运行这个程序,请尝试输入一些随机文本或移动鼠标。
执行到此按上述要求操作

5. 您是否愿意向证书颁发机构(CA)发送证书请求(CSR) ?这里点 no 这里是需要缴费申请的,我们仅用来学习不与要通过官方认证

6. 在这个阶段,您可以在您的私钥上设置密码。如果您设置了密码,您将不得不在每次服务器启动时输入它。用于加密密钥的密码必须与相同服务器安装使用的所有密钥相同。如果您不加密密钥,那么如果有人闯入您的服务器并获取包含密钥的文件,他们将能够解密使用该密钥协商的所有通信。如果您的密钥是加密的,那么将会有更多的工作用于检索私钥。

7. 您将被要求输入信息,这些信息将被制成您的服务器的自签名证书。您将要输入的是所谓的专有名称或DN。有相当多的领域,但你可以留下一些空白。

证书密钥生成完毕,编辑 /etc/httpd/conf.d/ssl.conf 将密钥添加进去

重启服务,在浏览器中输入
由于没有证书,连接不安全

为其添加证书

添加后查看域名信息

可以访问

apache 地址重写

具体执行如下:
编辑配置文件

在浏览器中执行 自动改写成:

在进行证书添加后就可以访问 login.server.

4. apache 支持的语言

Apache 默认支持的语言是 html 对于 cgi 是支持,但是需要进行配置。对于php 不支持需要进行插件安装
html :超文本标记语言,标准通用标记语言下的一个应用(apache 默认支持的语言)
php:超文本预处理器,是一种通用开源脚本语言(apache 默认不支持,需要进行安装)
CGI 是Web 服务器运行时外部程序的规范,按CGI 编写的程序可以扩展服务器功能。几乎所有服务器都支持CGI,可用任何语言编写CGI。

执行如下:
修改默认发布文件

编辑发布文件内容

在浏览器中查看

cgi 类型

执行如下:
编辑配置文件:

编辑发布文件内容:

浏览器中查看:

5. Squid 代理

Squid是一种用来缓冲Inter数据的软件。它是这样实现其功能的,接受来自人们需要下载的目标(object)的请求并适当地处理这些请求。也就是说,如果一个人想下载一web页面,他请求Squid为他取得这个页面。Squid随之连接到远程服务器(比如:)并向这个页面发出请求。然后,Squid显式地聚集数据到客户端机器,而且同时复制一份。当下一次有人需要同一页面时,Squid可以简单地从磁盘中读到它,那样数据迅即就会传输到客户机上。当前的Squid可以处理HTTP,FTP,GOPHER,SSL和WAIS等协议。但它不能处理如POP,NNTP,RealAudio以及其它类型的东西。

5.1 squid 的正向代理

若主机 A 可以上,另一台主机 B 想上,可以通过 squid 进行代理对主机 B 实现上。
操作如下:

执行如下:
主机 A 中(可上)
编辑配置文件:

主机 B 中(不可上)
在浏览器中编辑:

选择高级设置

选择固定代理配置,输入可上主机 IP 并输入端口号

检索百度,可以上

5.2 squid 的反向代理

用三个主机进行测试
一个为apache服务器
一个为squid 服务器(不需要 httpd 服务)
一个为客户端

执行如下:
在 suqid 服务器端编辑配置文件:

启动服务后,在apache 服务端编辑默认发布文件

在客户端浏览器中访问 squid 服务器 IP

访问 apache 服务端 IP

以上两者相同,反向代理成功

6. 简单论坛部署

通过 apahce 服务 mysql 数据库服务进行简单的论坛搭建

数据库相关配置请移步

执行如下:
在浏览器输入 IP/upload/进行论坛安装


运行环境设置

数据库创建

安装成功进行访问

管理员登录


登录成功,对论坛进行管理

本文链接:Linux菜鸟成长日记Linux下Apache服务程序的部署

您可能也会喜欢

友情链接:

大悲咒注音 心经唱诵 经文