如何设置独立的Apache服务器与基于名称的虚拟主机与SSL证书 - 第4部分

一个联邦经济竞争法 (简称Linux基金会认证工程师 )是一个训练有素的专业谁拥有安装,管理,并在Linux系统解决网络服务的专业知识,并负责设计,执行和系统架构的持续维护。

在本文中,我们将向您展示如何配置Apache以提供Web内容,以及如何设置基于名称的虚拟主机和SSL,包括自签名证书。

Linux基础认证工程师 - 第4部分

Linux基础认证计划(LFCE)简介。

:本文是不应该在Apache一个全面的指南,而是有关此主题的联邦经济竞争法考试自学的起点。 因此,在本教程中,我们不会使用Apache覆盖负载平衡。

你可能已经知道其他的方法来执行相同的任务,这是确定考虑到Linux基金会认证是严格基于性能。 因此,只要你把工作做好 “,你站通过考试的好机会。

要求

请参考当前系列的第1部分 (“ 安装网络服务和配置自动启动在启动 ”),对安装并启动Apache指令。

到目前为止,您应该已经安装并运行了Apache Web服务器。 您可以使用以下命令验证此。

# ps -ef | grep -Ei '(apache|httpd)' | grep -v grep

:对于Apachehttpd的运行进程的列表中存在(最常见的名称为Web后台程序)上面的命令检查。 如果Apache正在运行,您将获得类似于以下内容的输出。

检查Apache进程

测试Apache安装并检查它是否正在运行的最终方法是启动Web浏览器并指向服务器的IP。 我们应该看到以下屏幕或至少一个确认Apache正在工作的消息。

检查Apache网页

配置Apache

Apache的主配置文件可以位于不同的目录中,具体取决于您的分发。

/etc/apache2/apache2.conf 		[For Ubuntu]
/etc/httpd/conf/httpd.conf		[For CentOS]
/etc/apache2/httpd.conf 		[For openSUSE]

幸运的是,配置指令非常好,在记录Apache项目网站 我们将在本文中引用其中的一些。

在带有Apache的独立服务器中提供页面

Apache的最基本用法是在尚未配置虚拟主机的独立服务器上提供网页。 DocumentRoot指令规定出哪些Apache将提供网页文件的目录。

请注意,默认情况下,所有请求都来自此目录,但您也可以使用符号链接和/或别名也可以用于指向其他位置。

除非Alias指令(其允许文件被存储在本地文件系统,而不是通过DocumentRoot的指定的目录下)相匹配,则服务器追加从所请求的URL的文档根的路径,使该路径的文档。

例如,给定以下的DocumentRoot:

Apache DocumentRoot

当网络浏览器指向[ 服务器IP主机名 ] /lfce/youcl.html,服务器将打开/var/www/html/lfce/youcl.html(假定这样的文件存在)和事件保存到其访问日志用200(OK)响应。

访问日志通常发现的/ var/记录下代表的名称,如access.log里访问日志 你甚至可以找到此日志(以及错误日志以及)一个子目录中(例如, 在/ var /日志/ CentOS中的httpd)。 否则,失败事件仍将被记录到访问日志,但与404(未找到)响应。

Apache访问日志

此外,失败的事件将被记录在错误日志中:

Apache错误日志

访问日志的格式可根据使用主配置文件中的LogFormat指令,而你不能做的错误日志相同您的需求进行定制。

访问日志的缺省格式如下:

LogFormat "%h %l %u %t \"%r\" %>s %b" [nickname]

其中每个前面带有百分号的字母表示服务器记录某条信息:

描述
%H 远程主机名或IP地址
%l 远程日志名称
%u 如果请求已通过身份验证,则为远程用户
%t 收到请求的日期和时间
%r 第一行请求到服务器
%> s 请求的最终状态
%b 响应大小[字节]

昵称是可用于自定义其他日志,而无需再次输入整个配置字符串可选别名。

你可以参考LogFormat指令[ 自定义日志格式部分在Apache的文档进行进一步的选择。

这两个日志文件( 访问错误 )代表一个巨大的资源一目了然发生了什么Apache服务器上快速分析。 不用说,它们是系统管理员用来解决问题的第一个工具。

最后,另一个重要的指令是 ,告诉服务器接受指定的端口或地址/端口组合上收到的请求:

如果只有一个端口号被定义,则Apache将监听所有网络接口的给定端口(通配符符号*用来表示“所有网络接口”)。

如果指定了IP地址和端口,则apache将监听给定端口和网络接口的组合。

请注意(您将在下面的示例中看到),可以同时使用多个Listen指令来指定要监听的多个地址和端口。 此选项指示服务器响应来自任何列出的地址和端口的请求。

设置基于名称的虚拟主机

虚拟主机的概念定义由同一物理机提供服务的单个站点(或域)。 实际上,多个站点/域可以担任过一个“ 真实服务器作为虚拟主机。 此过程对最终用户是透明的,对于这些用户,不同的站点由不同的Web服务器提供服务。

基于名称的虚拟主机允许服务器依靠客户端报告主机名作为HTTP头的一部分。 因此,使用这种技术,许多不同的主机可以共享相同的IP地址。

每个虚拟主机中的DocumentRoot中的目录进行配置。 对于我们的情况,我们将使用以下虚拟域用于测试设置,每个都位于相应的目录中:

  1. ilovelinux.com - /var/www/html/ilovelinux.com/public_html
  2. linuxrocks.org - /var/www/html/linuxrocks.org/public_html

在正确显示顺序页面,我们将文件模式每个虚拟主机的目录为755:

# chmod -R 755 /var/www/html/ilovelinux.com/public_html
# chmod -R 755 /var/www/html/linuxrocks.org/public_html

接下来,创建每个public_html目录里面的一个样本index.html文件:

<html>
<head>
<title>www.ilovelinux.com</title>
</head>
<body>
<h1>This is the main page of www.ilovelinux.com</h1>
</body>
</html>

最后,在CentOS的openSUSE/etc/httpd/conf/httpd.conf中/etc/apache2/httpd.conf,底部添加下面的部分分别为,或者只是修改它,如果它已经存在。

<VirtualHost *:80>
ServerAdmin admin@ilovelinux.com 
DocumentRoot /var/www/html/ilovelinux.com/public_html
ServerName www.ilovelinux.com
ServerAlias www.ilovelinux.com ilovelinux.com
ErrorLog /var/www/html/ilovelinux.com/error.log
LogFormat "%v %l %u %t \"%r\" %>s %b" myvhost
CustomLog /var/www/html/ilovelinux.com/access.log	myvhost
</VirtualHost>
<VirtualHost *:80>
ServerAdmin admin@linuxrocks.org 
DocumentRoot /var/www/html/linuxrocks.org/public_html
ServerName www.linuxrocks.org
ServerAlias www.linuxrocks.org linuxrocks.org
ErrorLog /var/www/html/linuxrocks.org/error.log
LogFormat "%v %l %u %t \"%r\" %>s %b" myvhost
CustomLog /var/www/html/linuxrocks.org/access.log	myvhost
</VirtualHost>

请注意,您还可以在单独的文件添加/etc/httpd/conf.d目录中每个虚拟主机的定义。 如果选择这样做,则每个配置文件必须命名如下:

/etc/httpd/conf.d/ilovelinux.com.conf
/etc/httpd/conf.d/linuxrocks.org.conf

换句话说,你需要的.conf添加到网站或域名。

Ubuntu中,每个配置文件名为在/ etc / apache2的/网站的可用/ [站点名称]的.conf。 然后每个网站启用或与a2ensitea2dissite命令,分别禁止,如下。

# a2ensite /etc/apache2/sites-available/ilovelinux.com.conf
# a2dissite /etc/apache2/sites-available/ilovelinux.com.conf
# a2ensite /etc/apache2/sites-available/linuxrocks.org.conf
# a2dissite /etc/apache2/sites-available/linuxrocks.org.conf

a2ensitea2dissite命令创建链接到虚拟主机配置文件和地点(或删除)在/ etc /启用站点-的Apache2 /目录他们。

为了能够浏览到另一个Linux中这两个网站,你将需要添加以下行的/ etc / hosts中在机文件,以请求这些域重定向到一个特定的IP地址。

[IP address of your web server]	www.ilovelinux.com
[IP address of your web server]	www.linuxrocks.org 

作为一种安全措施,SELinux的不会让Apache将日志写入到默认的/ var /日志/ httpd的其他目录。

您可以禁用SELinux,或设置正确的安全上下文:

# chcon system_u:object_r:httpd_log_t:s0 /var/www/html/xxxxxx/error.log

其中xxxxxx/ var / www / html等 ,您已经定义了虚拟主机里面的目录。

重新启动Apache后,您应该在上面的地址看到以下页面:

检查Apache VirtualHosts

使用Apache安装和配置SSL

最后,我们将创建和安装自签名证书与Apache使用。 这种设置在小型环境(如专用LAN)中是可以接受的。

但是,如果您的服务器将通过Internet将内容公开到外部,您将需要安装由第三方签名的证书以证实其真实性。 无论哪种方式,证书都将允许您加密传输到您的网站,从您的网站或您的网站传输的信息。

CentOS的openSUSE,您需要安装mod_ssl的包。

# yum update && yum install mod_ssl 		[On CentOS]
# zypper refresh && zypper install mod_ssl	[On openSUSE]

而在Ubuntu你必须启用的Apache SSL模块。

# a2enmod ssl

下面的步骤是使用讲解了CentOS的测试服务器,但您的设置应该在其他的发行几乎是相同的(如果您遇到任何问题,请不要犹豫,用留下的评论形式您的问题)。

第1步 [可选]:创建一个目录来存储证书。

# mkdir /etc/httpd/ssl-certs

第2步 :生成您的自签名证书,这将保护它的关键。

# openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/httpd/ssl-certs/apache.key -out /etc/httpd/ssl-certs/apache.crt

上面列出的选项的简要说明:

  1. REQ -x509表明我们正在创造一个X509证书。
  2. -nodes(NO DES)的意思是“不加密密钥”。
  3. -days 365是证书的有效期为天数。
  4. -newkey RSA:2048创建一个2048位RSA密钥。
  5. -keyout /etc/httpd/ssl-certs/apache.key是RSA密钥的绝对路径。
  6. -out /etc/httpd/ssl-certs/apache.crt是证书的绝对路径。

创建Apache SSL证书

第3步 :打开你所选择的虚拟主机配置文件(或/etc/httpd/conf/httpd.conf中的相应部分如前所述),并添加以下行到虚拟主机声明监听端口443。

SSLEngine on
SSLCertificateFile /etc/httpd/ssl-certs/apache.crt
SSLCertificateKeyFile /etc/httpd/ssl-certs/apache.key

请注意,您需要添加。

NameVirtualHost *:443

在顶部,正下方

NameVirtualHost *:80

这两个指令指示Apache监听端口443和所有网络接口80。

下面的例子是从/etc/httpd/conf/httpd.conf中采取:

Apache VirtualHost指令

然后重新启动Apache,

# service apache2 restart 			[sysvinit and upstart based systems]
# systemctl restart httpd.service 		[systemd-based systems]

而浏览器指向https://www.ilovelinux.com。 您将看到以下屏幕。

检查Apache SSI证书

来吧,点击“ 我了解风险 ”和“ 添加例外 ”。

Apache Ceritficate警告

最后,勾选“ 永久保存此例外 ”,并点击“ 确认安全例外 ”。

添加SSl Ceritficate

你会使用https被重定向到您的主页。

Apache HTTPS已启用

概要

在这篇文章中,我们已经展示了如何使用SSL配置Apache基于域名的虚拟主机,以确保数据传输。 如果由于某种原因遇到任何问题,请随时使用下面的评论表格让我们知道。 我们将非常乐意帮助您执行成功的设置。

阅读

  1. 基于Apache IP和基于名称的虚拟主机
  2. 使用启用/禁用Vhosts创建Apache虚拟主机选项
  3. 使用“Apache GUI”工具监视“Apache Web服务器”
成为Linux认证工程师
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏