文章目录

  • 一、背景
  • 二、Apache与Nginx对比?
  • 三、apache的相关内容
    • 1、apache的安装部署
    • 2、apache的基本信息
    • 3、 修改Apache默认发布目录
    • 4、 修改默认端口
    • 5、修改默认发布文件
  • 四、apache的访问控制
  • 五、apache的虚拟主机配置
  • 六、apache支持的语言(html php cgi wsgi)
  • 七、https加密访问
  • 八、网页重写

一、背景

百度百科:Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。
Nginx:Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
可以使用curl -I(大写i)选项仅查看响应头部信息,我们来看一看国内知名网站部署的服务器类型:

不难发现,现在主流的web服务器都采用nginx的部署方式,毕竟在支持高并发方面有着天生的优势。
主流的网站基本采用:lamp/lnmp方式部署web服务器(l——linux,a——apache,n——nginx,m——mysql,p——php)

二、Apache与Nginx对比?

Apache Nginx
稳定、对动态请求处理强 擅长处理静态请求
但同时高并发时性能较弱,耗费资源多 高并发处理能力强、擅长处理反向代理、均衡负载

三、apache的相关内容

1、apache的安装部署

(1)部署前搭建实验环境(重置一台虚拟机,保证实验环境的干净。配置网络、配置yum源、selinux为关闭状态)
(2)apache的安装部署

yum install -y httpd 安装apache软件
yum install -y httpd-manual 安装apache手册
systemctl start httpd 打开服务
systemctl enable httpd 设置开机自启动
firewall-cmd --permaanent --add-service=http 在火墙中添加http
firewall-cmd --reload 重新加载使添加生效
firewall-cmd --list-all 列出火墙信息
/var/www/html apache根目录,默认发布目录,安装httpd后才会有这个文件
vim /var/www/html /index.html apache默认发布文件,编辑此文件,通过网页可以看到内容
<h1>westos</h1>   编辑文件形式,也可以直接写



测试:在浏览器输入:
http://172.25.254.160
http://172.25.254.160/manual #查看手册

2、apache的基本信息

目录 位置
主配置目录 /etc/httpd/conf
主配置文件 /etc/httpd/conf/httpd.conf
子配置目录 /etc/httpd/conf.d/
子配置文件 /etc/httpd/conf.d/*.conf
默认发布目录 /var/www/html
默认发布文件 index.html
默认端口 80
默认安全上下文 httpd_sys_content_t
程序开启默认用户 apache (我们在下载httpd这个软件后,会自动生成apache这个用户)
apache日志 /etc/httpd/logs/*

httpd配置文件的查看
|rpm -ql | grep httpd | 查看安装文件路径 |
|–|--|
|rpm -qc| grep httpd | 查看配置文件名称
rpm -qa | grep httpd |查看软件版本

3、 修改Apache默认发布目录

         vim /etc/httpd/conf/httpd.conf 复制一行,注释掉原来的,防止自己手写把格式写错/var/www/html-----将默认发布目录改为/westos/html加入授权信息:<Directory "/westos/html">Require all granted                    允许共享改目录下面的东西,否则无法访问</Directory>

4、 修改默认端口

     vim /etc/httpd/conf.httpd.f(43 Listen 8080          ##修改默认端口为8080)firewall-cmd --permanent --add-port=8080/tcpfirewall-cmd --reload


5、修改默认发布文件

     /etc/httpd/conf/httpd.conf默认发布文件就是访问apache时没有指定文件名时默认访问的文件这个文件可以指定多个,有访问顺序。在文件里 164行 DirectoryIndex westos index.html   ##当westos不存在时,就会访问index. html![在这里插入图片描述](https://img-blog.csdnimg.cn/20190812171029546.png)

四、apache的访问控制

先将所有配置恢复至初始,然后配置。
(允许谁访问)
1、设置ip
vim /etc/httpd/conf/httpd.conf
<Directory “/var/www/html/westos”>
Order Allow,Deny ##顺序读取,先读allow,再读deny
Allow from All
Deny from 172.25.254.x ##读到deny会覆盖allow

重置服务systemctl restart httpd


2、指定用户访问

 htpasswd -cm westosuer chen ##建立用户并设置密码cat westosuser   ##查看该文件建立chen1用户,-c会重新建立用户认证文件,覆盖之前的chen用户,密码会覆盖之前的用户vim /etc/httpd/conf/httpd.conf<Directory "/var/www/html/westos">AuthUserFile     /etc/httpd/conf/westosuserAuthType           basicAuthName           "(自己添加内容,可以为空)"Require   user   chen( 只允许chen用户通过认证访问共享目录)</Directory>




五、apache的虚拟主机配置

虚拟主机允许你从一个httpd服务器同时为多个网站提供服务。
(了解到基于名称的虚拟主机其中多个主机名都指向同一个ip地址,但是Web服务器根据用于到达站点的主机名提供具有不同内容的不同网站)

(1)mkdir -p /var/www/virtual/news/html 给news建立默认发布目录
(2)mkdir -p /var/www/virtual/music/html 给music建立默认发布目录
(3)vim /var/www/virtual/news/html/index.html 给news编写默认发布文件
(4)vim /var/www/virtual/music/html/index.html 给music编写默认发布文件<h1>music.westos.com</h1>
(5)在/etc/httpd/conf.d/ 下 vim default.conf 编辑虚拟主机的配置文件<VirtualHost _default_:80>虚拟主机的apache服务默认也使用端口80DocumentRoot /var/www/html根共享目录CustomLog logs(etc/httpd/logs)/default.log combined日志的目录</VirtualHost>![在这里插入图片描述](https://img-blog.csdnimg.cn/20190812200959596.png)(5)vim news.conf 写入news这个虚拟站点的基本信息和授权信息<VirtualHost *:80>ServerName news.westos.comDocumentRoot /var/www/virtual/html/newsCustomLog logs/news.log combined</VirtualHost><Directory "/var/www/virtualt/news/html">Require all granted</Directory>

(6)vim music.conf 写入music这个虚拟站点的基本信息和授权信息<VirtualHost *:80>ServerName music.westos.comDocumentRoot /var/www/virtual/html/musicCustomLog logs/news.log combined</VirtualHost><Directory "/var/www/virtualt/music/html">Require all granted</Directory>


(7)systemctl restart httpd
(8)测试:发现输入www.westos.com news.westos.com music.westos.com均是自己默认访问文件的内容

六、apache支持的语言(html php cgi wsgi)

###1、php语言
(1)编写一个php语言的默认发布文件index.php在 /var/www/html
(2)vim index.php 在默认发布文件 index.php中写入

yum install php -y 安装此服务
systemctl restart httpd 重启服务,在浏览器里面输入172.25.254.136就可以看到php的表格了


###2、cgi
172.25.254.136/manual/查看apache服务手册,看设置cgi语言都需要在配置文件里面写入哪些内容

(1)mkdir /var/www/html/cgi
(2)vim /var/www/html/cgi/index.cgio 写入刚刚粘贴的东西
(3)chmod +x index.cgio 脚本要给一个可以执行的权限
(4) ./index.cgio 可以看到显示Hello,World.


(5)浏览器中输入 172.25.254.136/cgi/index.cgio看到的是源代码

(6)vim default.conf 编辑虚拟主机的配置文件

(7)systemctl restart httpd


###3、wsgi(python)
wsgi支持多线程
wsgi支持python语言:

(1)下载wsgi相对应软件yum install -y mod_wsgi 安装wsgi模块
(2)mkdir /var/www/wsgi/ 新建一个目录
(2)下载python脚本,下载到目录/var/www/wsgi中。
(3)编写脚本文件
(4)重启服务 systemctl restart httpd ,本地解析
(5)测试

七、https加密访问

TTPS和HTTP的区别
超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息。HTTP协议以明文方式发送内容,不提供任何方式的数据加密
如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等
为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS。
为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
HTTPS和HTTP的区别主要为以下四点:
一、https协议需要到ca申请证书,一般免费证书很少,需要交费。
二、http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
三、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
四、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

###1、apache服务加密
(1)yum install mod_ssl -y 想将我的apache服务加密,安装插件mod_ssl
(2)重启服务,到 /etc/httpd/conf.d/ 可以看到 ssl.conf文件

(3)添加https服务道防火墙中
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

(4)netstat -antlupe | grep httpd 查看https的端口443是否开启
(5) 此时,浏览器输入 https://172.25.70.250,会发现:授权本部门没有授权(没有备案),认为不安全,所以警示!
解决方法: Advice(高级选项)–>Get Certificate(下载证书),Confirm确定就可以看到信息!
我们需要制作自己的证书和密钥。

###2、自签名证书
(1)yum install crypto-utils -y安装自己的加密工具

(2)genkey apache_server.westos.com 生成自己的锁和钥匙



(3)既然生成密钥和证书,那么Apach必须要知道,通过配置文件告知
vim /etc/httpd/conf.d/ssl.conf 在配置文件写入

(4)重启服务
(5)在浏览器中输入 https://172.25.70.250
点击右上角–>Preferences–>Advanced–>Network–>Settings–>Manual proxy configuration,输入相应内容。

八、网页重写

让客户在自己的浏览器中输入172.25.254.136(80端口)时自动跳转为https://172.25.254.136(443端口)
(1)在子配置目录/etc/httpd/conf.d内配置 login.conf

(2)vim login.conf

 <VirtualHost *:443>            建立一个443端口虚拟主机,https需要开启443端口ServerName       login.westos.comDocumentRoot   /var/www/vhost/login             建立默认发布目录CustomLog         logs/login.log   combinedSSLEngine on                                     开启这个功能SSLCertificateFile /etc/pki/tls/certs/www.ranran.com.crt            钥匙SSLCertificateKeyFile /etc/pki/tls/private/www.ranran.com.key    锁</VirtualHost><Directory "/var/www/html/virtual/login/html">   授权Require all granted</Directory>

(3)mkdir -p /var/www/virtual/login/html 建立默认发布目录
(4)vim /var/www/virtual/login/html/index.html 建立默认发布文件

         <h1>login.westos.com</h1>

(5)systemctl restart httpd 重启服务,且在本地解析中加入 login.westos.com
(6)vim login.conf 写入

     <VirtualHost *:80>                   建立一个80端口的虚拟主机ServerName      login.westos.comRewriteEngine   on              将网页重写的功能开启RewriteRule      ^(/.*)$       https://%{HTTP_HOST}$1 [redirect=301]    (状态码,永久重定向:永久跳转)</VirtualHost>


(7)systemctl restart httpd 重启服务
(8)在真机输入: login.westos.com 可以自动跳转到 https://login.westos.com

Apache部署超详细教程相关推荐

  1. Linux 安装httpd(apache)超详细教程

    Linux 安装httpd(apache)超详细教程 1.什么是apache 2.apache的作用 3.实验所需要的环境 4.实验步骤 (yum安装,编译安装) 什么是apache: Apache是 ...

  2. 前端项目自动化部署——超详细教程(Jenkins、Github Actions)

    本教程主要讲解了怎么使用 Jenkins 和 Github Actions 部署前端项目. 第一部分是使用 Gitea 配置局域网 git 服务器,再使用 Jenkins 将 Gitea 下的项目部署 ...

  3. 前端项目自动化部署——超详细教程(Jenkins、Github Actions)(转发)

    本教程主要讲解了怎么使用 Jenkins 和 Github Actions 部署前端项目. 第一部分是使用 Gitea 配置局域网 git 服务器,再使用 Jenkins 将 Gitea 下的项目部署 ...

  4. Linux服务器服务搭建及项目部署超详细教程

    目录 1.安装JDK 1.1 下载JDK 1.2 解压JDK 1.3 配置profile文件 1.4 删除openJDK 2.安装maven 2.1 准备maven安装包 2.2 解压maven安装包 ...

  5. Zksync Era合约部署超详细教程,避坑实录

    说明: 1.zksync era部署合约和ETH等网络不同,不能直接使用remix进行部署,官方出的解决方案是使用hardhat插件. 2.合约中的constructor需要传参进去,不能直接写入 3 ...

  6. Docker安装部署超详细教程(2021版)

    一.前提条件 1.1. 内核 Docker运行对内核要求比较高,因此一般建议直接在Ubuntu这样的平台运行.但作为一个容器标准,Docker也是支持其他如CentOS, Mac OS X, Wind ...

  7. 手把手带你入门前端工程化——超详细教程(高级前端必备)

    本文将分成以下 7 个小节: 技术选型 统一规范 测试 部署 监控 性能优化 重构 部分小节提供了非常详细的实战教程,让大家动手实践. 另外我还写了一个前端工程化 demo 放在 github 上.这 ...

  8. 手把手带你入门前端工程化——超详细教程

    授权自@谭光志 链接:https://segmentfault.com/a/1190000037752931,也可点击阅读原文 本文将分成以下 7 个小节: 技术选型 统一规范 测试 部署 监控 性能 ...

  9. 超详细Windows环境下使用Apache部署Django项目教程

    目录 超详细Windows环境下使用Apache部署Django项目教程 1.什么是Apache 2.安装并配置Apache 2.1 下载Apache 2.2 解压Apache到文件夹 2.3 配置c ...

最新文章

  1. 关于OKR,你最关心的几个问题,答案在这里
  2. 手机WebAPP设计注意事项和解决方法
  3. docker 容器状态 restarting_20分钟极简入门Docker
  4. 阿里云,我的一些看法
  5. matlab tf离散,求matlab离散化程序对于一个二阶传函,求其在MATLAB中的离散化程序.抱歉,没办法写清楚传函表达式.我试试:Gp(...
  6. 制作程序化装饰花纹图案_用装饰器设计图案装饰
  7. linux下安装phantomjs
  8. RHCE033内容摘要
  9. 右键桌面的计算机图标管理没用,计算机桌面图标消失了,鼠标右键没有响应
  10. 四旋翼无人机原理以及组装过程
  11. 内蒙古中医药杂志内蒙古中医药杂志社内蒙古中医药编辑部2022年第4期目录
  12. Centos7 Failed to start xxx.service: Unit not found
  13. matlab创作歌曲——《月半小夜曲》
  14. iOS安全逆向之旅---逆向基本知识概要介绍
  15. Python+QT+Selenium制作在线视频播放器
  16. 淘宝页面详情采集API调用展示(APP端商品详情)
  17. 深度学习系列笔记之统计基础
  18. 【MySQL】多表查询策略(多表联查子查询)
  19. TIF 和Hdmi cec hotplug热插拔事件过程梳理一
  20. netcore部署docker,在图片处理时有乱码或者The type initializer for ‘Gdip‘ throw an exception异常

热门文章

  1. 国际数字文创产业园区助力成都打造文创名城
  2. 通信网基础缩略语集合
  3. QQ看点模块(初稿截图)
  4. 情侣生日纪念日倒数提醒的便签
  5. win10无限蓝屏 ,错误代码BAD_SYSTEM_CONFIG_INFO
  6. 自动化测试和软件测试的区别,自动化测试和手动测试之间的区别
  7. 手机QQ iOS版默认不显示iPhone在线
  8. Netty相关面试题汇总
  9. 超全软件下载网站和网页(一网一匠)
  10. 国内首个基于Windows操作系统的GPU高性能计算集群研制成功