热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux下Apache服务的部署和配置

这篇文章介绍了Linux下Apache服务的部署和配置,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

1 Apache的作用

  • 解析网页语言,如html,php,jsp等
  • 接收web用户的请求,并给予一定的响应

2 Apache的安装

安装apche软件:dnf install httpd.x86_64 -y

3 apache的启用

  • 开启apache服务并设置开机启动:systemctl enable --now httpd
  • 查看apache服务的状态:systemctl enable --now httpd

  • 查看火墙信息:firewall-cmd --list-all 在火墙中永久开启http服务:firewall-cmd --permanent --add-service=http
  • 在火墙中永久开启https服务: firewall-cmd --permanent --add-service=https
  • 在不改变当前火墙状态的情况下刷新防火墙:firewall-cmd --reload

4 apache的基本信息

apche的基本信息

  • 服务名称:httpd
  • 主配置文件:/etc/httpd/conf/httpd.conf
  • 子配置文件:/etc/httpd/conf.d/*.conf
  • 默认发布目录:/var/www/html
  • 默认端口:80 (http) ,443(https)
  • 日志文件:/etc/httpd/logs
  • 开启apche服务后,输入ip查看默认发布页面:

(1)更改apche服务的端口号

  • 查看httpd服务的默认端口号:netstat -antlupe |grep httpd

  • 编辑配置文件: /etc/httpd/conf/httpd.conf,修改端口号

  • 重启httpd服务:systemctl restart httpd
  • 查看httpd服务的端口号:netsat -antlupe | grep httpd

  • 更改端口号后,输入ip后无法正常连接,原因是8080端口未添加在火墙中

  • 在防火墙里添加888端口号:firewall-cmd --permanent --add-port=888/tcp
  • 在不改变当前火墙状态的情况下刷新防火墙:firewall-cmd --reload

  • 输入IP地址:端口号,可以正常访问

(2)修改apche的默认发布文件

  • 默认目录:cd /var/www/html
  • 在文件默认发布目录下新建一个文件index.html

  • 输入:http://172.25.254.144查看

默认发布文件就是访问apache时没有指定文件名,即默认访问的文件,此文件可以指定多个,但有访问顺序。

  • 新建文件并编辑:westo.html

  • 编辑配置文件: /etc/httpd/conf/httpd.conf

  • 重启httpd服务:systemctl restart httpd

(3)修改apche的默认发布目录

  • 新建目录:mkdir -p /westos/html/
  • 创建文件:vim /westos/html/index.html

  • 编辑apche配置文件: /etc/httpd/conf/httpd.conf

  • 重启服务:systemctl restart httpd
  • 测试:浏览器中输入http://172.25.254.144, 看到的是/westos/html/目录内的默认发布文件

  • 新建发布目录:mkdir /var/www/html/westos
  • 新建发布文件:vim /var/www/html/westos/index.html

  • 编辑配置文件:vim /etc/httpd/conf/httpd.conf

  • 重启服务:systemctl restart httpd
  • 测试:http://172.25.254.144/westos/

5 apache的访问控制

5.1 基于客户端ip的访问控制

  • 基于ip的访问,规定了哪些ip可以访问,那些ip不能访问,其中配置文件中order中的deny和Allow哪一个顺序在前直接决定了黑白名单的属性

(1)白名单

  • ip白名单:只有名单内的用户可以访问
  • 编辑配置文件:vim /etc/httpd/conf/httpd.conf

  • 重启服务:systemctl restart httpd
  • 测试: ip=172.25.254.44在ip白名单,可以正常访问http://172.25.254.44/westos

ip=172.25.254.144的主机不在白名单内,无法访问http://172.25.254.44/westos

(2)ip黑名单

  • ip黑名单:只有名单内的用户不可以访问
  • 编辑配置文件:vim /etc/httpd/conf/httpd.conf

  • 测试:ip=172.25.254.44在ip黑名单中,可以正常访问http://172.25.254.44/westos

ip=172.25.254.144不在黑名单内,可以正常访问http://172.25.254.44/westos

5.2 基于用户认证的访问控制

(1)允许部分用户通过认证访问共享目录

  • 生成认证文件,建立admin用户:htpasswd -cm /etc/httpd/htpasswdfile linux

  • 建立linux用户,-c会重新建立用户认证文件,覆盖之前的admin用户,入密码会覆盖之前的用户: htpasswd -m /etc/httpd/htpasswdfile westos

  • 只允许部分用户可以通过认证,编辑配置文件:vim /etc/httpd/conf/httpd.conf

  • 重启服务:systemctl restart httpd
  • 测试:只有通过认证的用户可以访问共享目录

(2)允许所有用户通过认证访问共享目录

  • 编辑配置文件:vim /etc/httpd/conf/httpd.conf

  • 重启服务:systemctl restart httpd
  • 测试:所有用户都可以通过认证访问共享目录

6 apache的虚拟主机

虚拟主机:在一台真实主机上建立多个站点(多个域名),通过域名访问一台主机的不同网页,从网络地址看似乎有多个主机,这些主机被称为虚拟主机

DNS解析域名的ip

建立linux,news,media的默认发布目录: mkdir /var/www/westos.com/{linux,news,media}
inux的默认发布文件: echo "

hello linux

" > /var/www/westos.com/news/index.html news的默认发布文件:echo "

hello news

" > /var/www/westos.com/news/index.html media的默认发布文件:echo "

hello media

" > /var/www/westos.com/media/index.html
  • 新建apche的子配置文件并编辑:/etc/httpd/conf.d/vhost.conf

  • 编辑本地域名解析文件:/etc/hosts

  • 测试实验效果:

7 apache的加密访问

(1)安装加密插件

  • 查看apache的加密插件: dnf search apache

  • 安装加密插件

(2)生成私钥: openssl genrsa -out /etc/pki/tls/private/www.westos.com.key

(3)生成证书签名文件:openssl req -new -key /etc/pki/tls/private/www.westos.com.key -out /etc/pki/tls/cert/www.westos.com.csr

(4)生成证书:

openssl x509 -req -days 365 -in /etc/pki/tls/certs/www.westos.com.csr -signkey  /etc/pki/tls/private/www.westos.com.key -out /etc/pki/tls/certs/www.westos.com.crt
##  x509:证书格式
##  -req请求
##  -in加载签证名称
##  -signkey 

  • 编辑配置文件:/etc/httpd/conf.d/ssl.conf

  • 编辑apche的子配置文件并编辑:/etc/httpd/conf.d/vhost.conf

  • 重启服务:systemctl restart httpd

  • 测试:此时就可以正常使用https加密服务

8 网页重写

在浏览器中输入media.westos.com会自动跳转到如下界面

  • 如果要使输入media.westos.com后跳转到https://media.westos.com,可以通过网页重写实现,也就是当访问http(80端口)时自动跳转到https(443端口)
  • 实现网页重写的步骤

(1)apche的子配置文件并编辑:/etc/httpd/conf.d/vhost.conf

(2)重启服务:systemctl restart httpd

(3)测试,输入域名后会自动加载https

9 正向代理

(1) 配置squid客户端(该主机可以上网)

  • 编辑配置文件:/etc/squid/squid.conf

  • 启动squid服务: systemctl start squid.service

(2)客户端:在不能上网的主上测试,在浏览器中输入:www.baidu.com不能访问

  • 加入代理:Preference——>Network settings——>Manual proxy configuration

  • 填写squid服务的主机和squid服务的端口号,设置完成后,该主机虽然没有联网但是可以通过代理访问www.baidu.com及其他网站

  • 在客户端测试,能正常访问www.baidu.com

但是在客户端主机在仍然不能ping通www.baidu.com

10 反向代理

node1:没有apache服务的虚拟机172.25.254.244

node2:能正常使用apache服务的虚拟机172.25.254.193,配置apache的发布文件

  • 下载代理: dnf install squid -y

  • 编辑配置文件:vim /etc/squid/squid.conf

  • 重启squid服务:systemctl restart squid
    原本没有apache服务的主机172.25.254.244可以通过172.25.254.193的80端口(http)缓存数据

11 apache 支持的语言

php

重启apache服务:systemctl restart httpd.service

测试:http://172.25.254.144/index.php

cgi

mkdir /var/www/html/cgi

vim /var/www/html/cgi/index.cgi

cd /var/www/html/cgi

chmod +x index.cgi

./var/www/html/cgi/index.cgi

测试:http://172.25.254.144/cgi/index.cgi

编辑虚拟主机的配置文件:vim /etc/httpd/conf.d/vhost.conf

重启服务:systemctl restart httpd.service

测试:http://172.25.254.144/cgi/index.cgi

到此这篇关于Linux下Apache服务的部署和配置的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持。


推荐阅读
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • Windows7 64位系统安装PLSQL Developer的步骤和注意事项
    本文介绍了在Windows7 64位系统上安装PLSQL Developer的步骤和注意事项。首先下载并安装PLSQL Developer,注意不要安装在默认目录下。然后下载Windows 32位的oracle instant client,并解压到指定路径。最后,按照自己的喜好对解压后的文件进行命名和压缩。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • Android系统源码分析Zygote和SystemServer启动过程详解
    本文详细解析了Android系统源码中Zygote和SystemServer的启动过程。首先介绍了系统framework层启动的内容,帮助理解四大组件的启动和管理过程。接着介绍了AMS、PMS等系统服务的作用和调用方式。然后详细分析了Zygote的启动过程,解释了Zygote在Android启动过程中的决定作用。最后通过时序图展示了整个过程。 ... [详细]
  • Centos7搭建ELK(Elasticsearch、Logstash、Kibana)教程及注意事项
    本文介绍了在Centos7上搭建ELK(Elasticsearch、Logstash、Kibana)的详细步骤,包括下载安装包、安装Elasticsearch、创建用户、修改配置文件等。同时提供了使用华为镜像站下载安装包的方法,并强调了保证版本一致的重要性。 ... [详细]
  • 本文介绍了如何在Azure应用服务实例上获取.NetCore 3.0+的支持。作者分享了自己在将代码升级为使用.NET Core 3.0时遇到的问题,并提供了解决方法。文章还介绍了在部署过程中使用Kudu构建的方法,并指出了可能出现的错误。此外,还介绍了开发者应用服务计划和免费产品应用服务计划在不同地区的运行情况。最后,文章指出了当前的.NET SDK不支持目标为.NET Core 3.0的问题,并提供了解决方案。 ... [详细]
author-avatar
我要减肥2502896373
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有