Apache部署超详细教程
文章目录
- 一、背景
- 二、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部署超详细教程相关推荐
- Linux 安装httpd(apache)超详细教程
Linux 安装httpd(apache)超详细教程 1.什么是apache 2.apache的作用 3.实验所需要的环境 4.实验步骤 (yum安装,编译安装) 什么是apache: Apache是 ...
- 前端项目自动化部署——超详细教程(Jenkins、Github Actions)
本教程主要讲解了怎么使用 Jenkins 和 Github Actions 部署前端项目. 第一部分是使用 Gitea 配置局域网 git 服务器,再使用 Jenkins 将 Gitea 下的项目部署 ...
- 前端项目自动化部署——超详细教程(Jenkins、Github Actions)(转发)
本教程主要讲解了怎么使用 Jenkins 和 Github Actions 部署前端项目. 第一部分是使用 Gitea 配置局域网 git 服务器,再使用 Jenkins 将 Gitea 下的项目部署 ...
- Linux服务器服务搭建及项目部署超详细教程
目录 1.安装JDK 1.1 下载JDK 1.2 解压JDK 1.3 配置profile文件 1.4 删除openJDK 2.安装maven 2.1 准备maven安装包 2.2 解压maven安装包 ...
- Zksync Era合约部署超详细教程,避坑实录
说明: 1.zksync era部署合约和ETH等网络不同,不能直接使用remix进行部署,官方出的解决方案是使用hardhat插件. 2.合约中的constructor需要传参进去,不能直接写入 3 ...
- Docker安装部署超详细教程(2021版)
一.前提条件 1.1. 内核 Docker运行对内核要求比较高,因此一般建议直接在Ubuntu这样的平台运行.但作为一个容器标准,Docker也是支持其他如CentOS, Mac OS X, Wind ...
- 手把手带你入门前端工程化——超详细教程(高级前端必备)
本文将分成以下 7 个小节: 技术选型 统一规范 测试 部署 监控 性能优化 重构 部分小节提供了非常详细的实战教程,让大家动手实践. 另外我还写了一个前端工程化 demo 放在 github 上.这 ...
- 手把手带你入门前端工程化——超详细教程
授权自@谭光志 链接:https://segmentfault.com/a/1190000037752931,也可点击阅读原文 本文将分成以下 7 个小节: 技术选型 统一规范 测试 部署 监控 性能 ...
- 超详细Windows环境下使用Apache部署Django项目教程
目录 超详细Windows环境下使用Apache部署Django项目教程 1.什么是Apache 2.安装并配置Apache 2.1 下载Apache 2.2 解压Apache到文件夹 2.3 配置c ...
最新文章
- 关于OKR,你最关心的几个问题,答案在这里
- 手机WebAPP设计注意事项和解决方法
- docker 容器状态 restarting_20分钟极简入门Docker
- 阿里云,我的一些看法
- matlab tf离散,求matlab离散化程序对于一个二阶传函,求其在MATLAB中的离散化程序.抱歉,没办法写清楚传函表达式.我试试:Gp(...
- 制作程序化装饰花纹图案_用装饰器设计图案装饰
- linux下安装phantomjs
- RHCE033内容摘要
- 右键桌面的计算机图标管理没用,计算机桌面图标消失了,鼠标右键没有响应
- 四旋翼无人机原理以及组装过程
- 内蒙古中医药杂志内蒙古中医药杂志社内蒙古中医药编辑部2022年第4期目录
- Centos7 Failed to start xxx.service: Unit not found
- matlab创作歌曲——《月半小夜曲》
- iOS安全逆向之旅---逆向基本知识概要介绍
- Python+QT+Selenium制作在线视频播放器
- 淘宝页面详情采集API调用展示(APP端商品详情)
- 深度学习系列笔记之统计基础
- 【MySQL】多表查询策略(多表联查子查询)
- TIF 和Hdmi cec hotplug热插拔事件过程梳理一
- netcore部署docker,在图片处理时有乱码或者The type initializer for ‘Gdip‘ throw an exception异常