如何配置Apache

1、什么是Apache

(1)世界使用最流行的Web服务器之一;

(2)可以在大多数计算机操作系统中运行;

(3)特点:简单、速度快、性能稳定,可做代理服务器;

(4)作用:在web访问时,定义的http://的协议方式(国内还有其他公司用的一些自主平台:京东(jfe);百度(nginx));

【注】可通过curl - I 域名 可查看一些域名的服务器类型

2、Apache的基本信息

用户:apache

服务名称:httpd

配置文件:/etc/httpd/conf/httpd.conf(主配置文件);/etc/httpd/conf.d/*.conf(子配置目录)

日志:/etc/httpd/logs

默认发布目录:/var/www/html

默认发布文件:index.html

默认端口:80(http);443(https)

3、Apache的安装和启用

3.1 安装的软件包: httpd.x86_64

3.2 Apache启用:systemctl start httpd

图 1 Apache启动

【注】若火墙中的http服务并未打开,则依旧无法访问。

           查看火墙信息:firewall-cmd --list-all

           查看可开启的服务:firewall-cmd --get-services

           永久开启http服务:firewall-cmd --permanent --add-service=htttp(https)

           刷新火墙设定,使设定生效:firewall-cmd --reload

图 2 火墙添加http,https服务

4、Apache的基本配置

配置选项修改配置文件:/etc/httpd/conf/httpd.conf注意事项
端口修改Listen 8080

1. 此参数改变需要修改配置文件

2. 端口生效时需要selinux和火墙均允许此端口

firewall-cmd --permanent --add-port=8080/tcp

semanage port -l | grep http semanage port -a -t http_port_t -p tcp 8080

3. 修改完成后需要重启httpd服务

默认发布目录修改

DocumentRoot "/www/html"

<Directory "/www/html">      

  Require all granted

</Directory>

1.测试发布不成功可能会因为sselinuxs所设置的安全上下文有关,可进行如下设置:

semanange fcontext -a -t httpd_sys_content_t '/www(/.*)?'

restorecon -RvvF /www/

2. 修改完成后需要重启服务

默认发布文件修改DirectoryIndex index.html

1.当默认发布目录中index.html存在时,访问页为index.html内容

2.当默认发布目录中index.html不存在时,访问Apache的测试页

3.当默认访问目录中存在多个默认文件,可进行文件顺序的修改,同时会根据顺序进行访问,前者没有,会依次向后访问

【注】1. 查看当前http服务的端口号:netstat -antulpe | grep http

           2. index.html 文件内容为HTML语言,若读者有兴趣可自行学习,配置。

图 3 修改默认端口

 

图 4 开启火墙的8080服务端口

 

图 5 设置selinux的8080端口

 

图 6 通过8080端口进行访问

 

图 7 配置默认路径

 

图 8 修改安全上下文

 

图 9 设置默认路径下的默认文件

 

图 10 访问默认路径下的结果

 

图 11 在默认路径下不存在默认文件

 

图 12 默认路径下不存在默认文件时的访问页面

 

5、Apache的访问控制

访问控制条件修改配置文件:/etc/httpd/conf/httpd.conf注意事项
基于客户端IP的访问

白名单:

<Directory "/var/www/html/westos">       

Order Deny,Allow       

Allow from 192.168.0.10       

Deny from All

</Directory>

1.根据order访问顺序可调整所跟的客户IP为黑名单或白名单

2. 这里只能进行IP的添加,不可用文件的形式进行传递

黑名单:

<Directory "/var/www/html/westos">      

Order Allow,Deny      

Allow from All       

Deny from 192.168.0.10

</Directory>
 

基于用户认证的访问

目录配置:

<Directory "/var/www/html/westos">       

AuthUserfile /etc/httpd/htpasswdfile 

AuthName "Please input your name and password"

AuthType basic

Require user admin  </Directory>

Require 后面所跟的参数可以限制用户的访问权限;

valid-user 允许所有用户通过认证

user username 允许对应的用户名可访问

生成认证文件:

htpasswd -cm /etc/httpd/htpasswdfile admin

若/etc/httpd/htpasswdfile存在,则添加用户时不要加-c参数否则会覆盖源文件内容

【注】在访问过程中,由于浏览器存在缓存,可能会影响实验想过,故在每次验证前,建议清楚浏览器的缓存。

图 13 设定ip访问方式的白名单
图 14 白名单访问结果

 

图 15 设定ip访问的黑名单

 

图16 黑名单下访问结果

 

 

图 17 设定用户访问权限

 

图 18 设定访问用户名单和密码

 

图 19 访问时根据要求输入用户及密码

 

图 20 当输入错误的用户或密码时,取消输入结果

6、Apache的虚拟主机服务

为了使不同的网页信息,在同一站点下,故可使用虚拟的主机服务,在同一站点下,给不同网页分配不同的配置也页,从而达到目的。

6.1 为了效果明显我们建立以下素材:

mkdir -p /var/www/test.com/{news,wenku}

echo "wenku's page" > /var/www/test.com/wenku/index.html

echo "news's page" > /var/www/test.com/news/index.html

echo "default's page" > /var/www/html/index.html

图 21 设置不同站的访问页面

6.2 虚拟站点的配置设置

(1)在/etc/httpd/conf.d/自配置目录下,建立虚拟站点配置服务文件: vim Virtualhost

(2)编写Virtualhost文件内容:

文件设置配置结果

<Virtualhost _default_:80>

    Documentroot "/var/www/html"

    Customlog logs/default.log combined

</Virtualhost>

配置默认登录界面

 

<Virtualhost *:80>

    Servername wenku.test.com

    Documentroot "/var/www/test.com/wenku"

    Customlog logs/wenku.logs combinded

</Virtualhost>

配置域名访问为wenku.test.com的页面

<VirtualHost *:80>

    ServerName news.test.com

    DocumentRoot "/var/www/test.com/news"

    CustomLog logs/news.log combined </VirtualHost>
 

配置域名访问为news.test.com的页面

【注】日志的存放路径在上述配置文件中写的是相对路径,因为路径在主配置文件中已经写过。

图 22 进行不同站点虚拟主机的配置

 

(3)内容测试:在客户主机中输入所要访问的IP,若需要通过域名访问,可在/etc/hosts的本地解析中添加解析:

图23 访问默认站点时

 

图24 访问wenku.tes.com

 

图 25 访问news.test.com

【例】192.168.1.10 www.test.com wenku.test.ocm news.test.com

图 26 设置本地解析地址

 

7、Apache支持的语言

默认HTML
常用php,cgi

HTML:可直接使用

PHP:在默认的访问页配置目录中书写文件,php语言的文件需要以.php结尾;语言的支持需要安装php的软件包。

【例】vim  /var/httpd/index.html(php的测试页)

                     <?php

                               phpinfo();

                     ?>

图 27 安装php语言支持包

 

图 28 编写php测试页

 

图 29 默认显示php测试界面

CGI:同样在访问的配置页面中可以填写cgi的测试页;cgi测试是一个脚本语言,所以需要给与测试文件执行的权限,且需要在子配置目录中写配置文件:

测试页(/var/www/html/cgidir)内容:

#!/usr/bin/perl

print "Content-type: text/html\n\n";

print `date`;

配置文件(/etc/httpd/conf.d/vhost.conf)内容:
 <Directory "/var/www/html/cgidir">

         Options +ExecCGI

         AddHandler cgi-script .cgi

</Directory>

图 30 编写cgi语言测试文件

 

图 31 cdi语言测试结果

8、Apache的加密访问

rhel7中,可以通过genkey,来直接生成证书;

【例】genkey IP(站点)

安装软件:mod_ssl.x86_64,crypto-utils

图 32 软件包的安装

 

图 33 证书基本信息阐述

 

图 34 选择证书加密大小

 

图 35 证书制作的过程

 

图 36 是否通过CA认证

 

图 37 编写证书基本信息

 

生成之后,可同伙https://进行访问,并查看证书。

rhel8中,需要通过openssl服务生成证书。

【例】采用工具openssl产生密钥,并对证书进行签密

(1)安装mod_ssl软件包;

(2)产生密钥:openssl genrsa -out /etc/pki/tls/private/www.test.com.key 2048(genrsa:以rsa的方式加密,-out:输出密钥到文件***,2048:加密长度);

(3)生成证书签密文件:openssl req -new -key /etc/pki/tls/private/www.test.com.key -out /etc/pki/tls/certs/www.test.com.csr(根据新的密产生证书);

图 38 生成密钥和证书

(4)证书生成:openssl x509 -req -days 365 -in /etc/pki/tls/certs/www.test.com.csr -signkey /etc/pki/tls/private/www.test.com.key -out /etc/pki/tls/certs/www.test.com.crt(-req:证书请求,-days:加密有效天数;-in:加载密签名称,-signkey:加密的密钥)

图 39 用x509对密钥用证书加密

(5)修改ssl.conf(对所有网页均生效):

SSLCertificateFile /etc/pki/tls/certs/www.test.com.crt

SSLCertificateKeyFile /etc/pki/tls/private/www.test.com.key

(6)在conf.d子配置目录下编写virtualhost.conf虚拟主机配置(单独设置,对某个网页生效):

<VirtualHost *:443>

        ServerName login.test.com

        DocumentRoot "/www/test.com/login"

        CustomLog logs/login.log combined

        SSLEngine on

        SSLCertificateFile /etc/pki/tls/certs/www.test.com.crt

        SSLCertificateKeyFile /etc/pki/tls/private/www.test.com.key

</VirtualHost>

图 40 修改加密认证页面

【注】因为加密是443端口,所以需要设定端口为443;此时在访问特定页面时需要手动添加https的服务;

图 41 设定火墙服务

(7)将手动添加转化为自动转化

<VirtualHost *:80>

        ServerName login.test.com

        RewriteEngine on

        RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1

</VirtualHost>

图 42 网页加密

【注】^(/.*)$ :表示客户主机地址栏中输入的内容;%{HTTP_HOST}:客户主机;$1 :RewriteRule后面跟的第一串字符的值;
 (8)重启服务即可在浏览器中进行验证,查看证书是否为我们自己产生的证书。

图 43 查看加密证书为我们所设定的信息

9、Squid+Apache

(1)Squid正向代理(代理主机<翻墙>)

实验环境:设定单网卡主机不可上网;双网卡主机可以上网;

图 44 设定网络环境

步骤:

<1> 在双网卡主机中安装squid服务;

图 45 查看squid环境

<2>编辑squid的配置文件(/etc/squid/squid.conf):http_access allow all;cache_dir ufs /var/spoll/squid 100 16 256;

图 46 修改squid配置文件

<3>启动squide服务,设定火墙允许squid端口工作(firewall-cmd --add-port=3218/tcp)

图 47 修改火墙设定

<4>在当网卡主机中的浏览器中,选择NetWork Proxy;输入双网卡中可连接的主机IP和端口,即可在浏览器中上网。

图 48 修改浏览器访问方式

 

图 49 在单网卡主机测试

(2)Squid反向代理(缓存网页)

实验环境:在192.168.1.10 中安装Apace服务(交互界面);在192.168.1.200 中安装Squid (负责上网) ;

步骤:

<1> 配置squid的配置目录(/etc/squid/squid.conf):http_port 80 vhost vport (主机80端口支持虚拟主机和虚拟端口);cache_peer 192.168.1.100 parent  80      0       proxy-only (当访问192.168.1.100的80端口时,会从192.168.1.10的80端口缓存数据)

图 50 设定squid为缓存器

<2>  重启squid服务:ystemctl restart squid;

<3> 在网页中访问192.168.1.100即可看到192.168.1.10的配置也页内容。

图 51 测试实验结果

 

上述为Linux中Apache服务的基本介绍,若有问题,欢迎大家指出;因实验有时结果会覆盖上一条命令的操作,若上述内容还有所不懂,欢迎留言,会在第一时间给尽自己所能,给大家解决。愿上述内容有所用! 

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值