Linux下Apache服务的部署和配置

目录
  • 1 Apache的作用
  • 2 Apache的安装
  • 3 apache的启用
  • 4 apache的基本信息
  • 5 apache的访问控制
    • 5.1 基于客户端ip的访问控制
    • 5.2 基于用户认证的访问控制
  • 6 apache的虚拟主机
  • 7 apache的加密访问
  • 8 网页重写
  • 9 正向代理
  • 10 反向代理
  • 11 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 "<h1>hello linux</h1>"  >  /var/www/westos.com/news/index.html
news的默认发布文件:echo "<h1>hello news </h1>" > /var/www/westos.com/news/index.html
media的默认发布文件:echo "<h1>hello media </h1>" > /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服务的部署和配置的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 如何在Linux操作系统下安装Apache服务的方法实例详解

    链接下载: 操作环境 VMware虚拟机中CentOS 7.6 SecureCRT Xftp(Xmanager) 需求分析 使用Apache服务实现访问http 操作步骤 1.挂载光盘 [root@localhost ~]# mount /dev/cdrom /mnt 查看是否挂载 [root@localhost ~]# df -Th 2.从源码包编译安装程序 (编译安装) [root@localhost Packages]# yum -y install gcc gcc-c++ make 3.

  • 基于Linux搭建Apache网站服务配置详解

    Apache作为一款开源软件,是广泛应用的web应用之一,Apache有两个主要版本1.X和2.X,一般我们使用2.X版本,比起1.X版本它支持很多新的功能,下载Apache源码包的地址为:https://httpd.apache.org ,下载到源码包后开始准备安装: 1.为避免发生端口冲突,程序冲突等问题,如果有rpm方式安装的httpd服务,建议将其卸载. 2.挂载系统镜像,切换至系统盘中的Packages目录,安装相关依赖包(注意,最好一个一个的依次安装,因为如果有些安装包已经安装了,一

  • Linux安装apache服务器的配置过程

    准备这些包 安装 查看是否已经安装过apache  rpm  -qa  |grep  httpd 卸载apache rpm -e --nodeps  httpd (-nodeps 是忽略该软件的依赖关系) 建立rpm包存放文件夹 cd  / mkdir rpm_dir 解压包 tar -zxvf httpd-2.4.51.tar.gz tar -zxvf apr-1.7.0.tar.gz tar -zxvf apr-util-1.6.1.tar.gz 移动apache的两个依赖文件apr,apr

  • linux下使用Apache搭建文件服务器的步骤

    一.关于文件服务器 在一个项目中,如果想把公共软件或者资料共享给项目组成员,可以搭建一个简易的文件服务器来实现,只要是在局域网内的成员都可以通过浏览器或者wget命令来下载和访问资料.可以达到信息共享,软件版本一致的效果.本文讲述在linux环境下使用Apache服务搭建文件服务器. 二.使用Apache搭建文件服务器 1.Apache服务在linux环境下的程序叫做httpd,所以首先安装httpd服务,如果配置好了yum源的话,直接使用yum命令安 装,如果没有配置好yum源的话,可以参考博

  • 浅析linux下apache服务器的配置和管理

    一.两个重要目录:Apache有两个重要的目录:1.配置目录/etc/httpd/conf:2.文档目录/var/www: 二.两种配置模式:Apache在Fedora下的两种配置方式:文本模式(终端命令行)和图形化配置.两者各有优势:图形化下配置,更容易上手,在文本模式下直接编辑httpd.conf文件,自由性更强些.更直接. 三.Apache服务的启动与关闭Apache服务的停止.启动.关闭可以通过两种模式下进行操作:文本(终端)模式下和图形化界面. 四.终端下的操作如果你想用Linux作为

  • Linux下Apache服务的部署和配置

    目录 1 Apache的作用 2 Apache的安装 3 apache的启用 4 apache的基本信息 5 apache的访问控制 5.1 基于客户端ip的访问控制 5.2 基于用户认证的访问控制 6 apache的虚拟主机 7 apache的加密访问 8 网页重写 9 正向代理 10 反向代理 11 apache 支持的语言 1 Apache的作用 解析网页语言,如html,php,jsp等 接收web用户的请求,并给予一定的响应 2 Apache的安装 安装apche软件:dnf inst

  • 简述Linux下Samba服务的安装与配置

    Samba与window连接需要使用NetBIOS协议,请确认你的Win7系统已经安装了NetBIOS协议. 组成Samba运行的有两个服务,一个是SMB,另一个是NMB:SMB是Samba 的核心启动服务,主要负责建立 Linux Samba服务器与Samba客户机之间的对话, 验证用户身份并提供对文件和打印系统的访问,只有SMB服务启动,才能实现文件的共享,监听139 TCP端口:而NMB服务是负责解析用的,类似与DNS实现的功能,NMB可以把Linux系统共享的工作组名称与其IP对应起来,

  • CentOS 7下设置Docker代理(Linux下Systemd服务的环境变量配置)

    Docker守护程序使用HTTP_PROXY,HTTPS_PROXY以及NO_PROXY环境变量在其启动环境来配置HTTP或HTTPS代理的行为.无法使用daemon.json文件配置这些环境变量. 此示例将覆盖默认docker.service文件. 在设置中,需要在Docker systemd服务文件中添加此配置 如果使用HTTP代理服务器时,将为docker服务创建systemd插件目录: mkdir -p /etc/systemd/system/docker.service.d 创建一个名

  • Linux下APACHE&PHP&MYSQL&CGI修改版

    根据一个自称自己经验所得的混蛋文章改的 许多文章结合起来,嘿嘿 MOD_PERL,FASTCGI那一栏我没有调试,因为不喜欢CGI.CHMOD MYSQL那一栏两次都是卡住过,如果有问题,可以来回做做实验. Linux下apache+mysql+php^^^^^^^^(修改版) 唉,网上如此多的文章,版本居然这么多,并且多多少少存在着一些毛病,解决毛病及错误用了自己一天的时间,修改些错误的地方,最后的版本就是下面的了 apache1.3.24+php4.21+mysql3.23.49+opens

  • Linux下apache支持PHP配置文件的方法

    本文用来记忆整了两天的lamp环境,如果对PHP没有要求建议全部用yum 一键安装,纯属个人经验,主要作用是用来参考的. yum install httpd #yum 安装Apache. php编译安装 安装前记得安装php依赖环境 yum安装PHP5.6的依赖环境 yum -y install gcc gcc-c++ libxml2 libxml2-devel PHP5.6.2下载路径 wget http://mirrors.sohu.com/php/php-5.6.2.tar.gz /con

  • Linux下安装tomcat并部署网站(推荐)

    安装jdk: Oracle官方下载 https://www.oracle.com/technetwork/java/javase/downloads/index.html yum安装openjdk: 1.查找可使用的jdk包: [root@linux ~]# yum list |grep jdk 2.选择对应版本的包安装: [root@linux ~]# yum -y install java-1.8.0-openjdk 安装tomcat: tomcat官网:http://tomcat.apac

  • Linux下MySQL多实例部署及安装指南

    什么是MySQL多实例 简单地说,Mysql多实例就是在一台服务器上同时开启多个不同的服务端口(3306.3307),同时运行多个Mysql服务进程,这些服务进程通过不同的socket监听不同的服务端口来提供服务. 这些Mysql多实例公用一套Mysql安装程序,使用不同的my.cnf(也可以相同)配置文件,启动程序(也可以相同)和数据文件.在提供服务时,多实例 Mysql在逻辑上看来是各自独立的,它们根据配置文件的对应设定值,获得服务器相应数量的硬件资源. 打个比方,Mysql多实例就相当于房

  • Linux 下VSFTP服务搭建过程

    Vsftp服务 服务功能:文件传输 1.环境部署 ip=192.168.1.50 [root@localhost /]# rpm -ivh /mnt/Packages/vsftpd-2.2.2-11.el6_4.1.x86_64.rpm 2.匿名访问 1)设置配置文件 [root@localhost /]# vi /etc/vsftpd/vsftpd.conf chown ftp /var/ftp/pub --设置准备目录 anonymous_enable=YES --开启匿名访问 local_

  • Linux下sshd服务及服务管理命令详解

    sshd SSH为Secure Shell的缩写,是应用层的安全协议.SSH是目前较可靠,专为远程登陆会话和其他网络服务提供安全性的协议.利用SSH协议可以有效防止远程管理过程中的信息泄露问题. openssh-server 功能:让远程主机可以通过网络访问sshd服务,开始一个安全shell 客户端连接方式 ssh 远程主机用户@远程主机ip 先rm -rf /root/.ssh/清掉之前的配置 ssh 远程主机用户@远程主机ip -X 调用远程主机图形工具 ssh 远程主机用户@远程主机ip

  • Linux下安装Python3和django并配置mysql作为django默认服务器方法

    我的操作系统为centos6.5 1  首先选择django要使用什么数据库.django1.10默认数据库为sqlite3,本人想使用mysql数据库,但为了测试方便顺便要安装一下sqlite开发包. yum install mysql mysql-devel #为了测试方便,我们需要安装sqlite-devel包 yum install sqlite-devel 2  接下来需要安装Python了,因为Python3已经成为主流,所以接下来我们要安装Python3,到官网去下载Python3

随机推荐