一个联邦经济竞争法 (简称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
注 :对于Apache或httpd的运行进程的列表中存在(最常见的名称为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中的目录进行配置。 对于我们的情况,我们将使用以下虚拟域用于测试设置,每个都位于相应的目录中:
- ilovelinux.com - /var/www/html/ilovelinux.com/public_html
- 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。 然后每个网站启用或与a2ensite或a2dissite命令,分别禁止,如下。
# 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
该a2ensite和a2dissite命令创建链接到虚拟主机配置文件和地点(或删除)在/ 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
上面列出的选项的简要说明:
- REQ -x509表明我们正在创造一个X509证书。
- -nodes(NO DES)的意思是“不加密密钥”。
- -days 365是证书的有效期为天数。
- -newkey RSA:2048创建一个2048位RSA密钥。
- -keyout /etc/httpd/ssl-certs/apache.key是RSA密钥的绝对路径。
- -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和基于域名的虚拟主机,以确保数据传输。 如果由于某种原因遇到任何问题,请随时使用下面的评论表格让我们知道。 我们将非常乐意帮助您执行成功的设置。
阅读