如何在Apache中方便地切换http和https?

在YMU系统中,我们使用Apache 2.x作为前端Web Server,用于静态内容的保存和获取,及动态内容向后端Web Server(Tomcat)的转发;同时Apache 2.x也承担Tomcat服务器之间的负载均衡器。

<o:p> </o:p>

从性能方面考虑,YMU系统的大部分页面采用http协议传输。而某些页面,如注册、登录和修改密码等安全性要求高的页面,则需要采用https协议进行传输。

<o:p> </o:p>

如何在http及https协议之间转换?最直接的办法是采用绝对路径,此方法优点是间接明了,缺点是移植性差。一个比较好的方法是使用Apache的rewrite模块对相对路径进行转换,从而达到协议转换的目的。

<o:p> </o:p>

我们可以在Apache的官方文档中找到http/https切换的相关说明:

RewriteEngine on<o:p></o:p>

RewriteRule ^/(.*):SSL$ https://%{SERVER_NAME}/$1 [R,L]<o:p></o:p>

RewriteRule ^/(.*):NOSSL$ http://%{SERVER_NAME}/$1 [R,L]<o:p></o:p>

<o:p> </o:p>

如果直接定义在httpd.conf,则会有以下问题:

  • 在页面中点击这些特殊的URL(login.html:SSL)时,浏览器会报协议错误,它把:SSL前面的内容(login.html)当作协议了;
  • 如果把“:”改成“_”或其他字符,则http可以转到https了,而https则不能转成http。什么原因呢?看了很多文档,才发现rewrite规则设置是针对虚拟主机的,而443端口被配置成另外的虚拟主机,所以就规则就失效了,还得在ssl配置文件(httpd-ssl.conf)中设置转发规则。

<o:p> </o:p>

下面举例说明配置过程。假设我们在相对路径url后增加_ssl表示以https协议装载url;而url后面增加_nossl则用于在https页面中跳转回http协议。配置步骤如下:

<o:p> </o:p>

1.       编译Apache时,生成rewrite模块(mod_rewrite.so);

2.       在httpd.conf中装载rewrite模块,并定义http->https的转换规则:

LoadModule rewrite_module modules/mod_rewrite.so<o:p></o:p>

<o:p> </o:p>

<ifmodule rewrite_module=""><o:p></o:p></ifmodule>

RewriteEngine On                                                          <o:p></o:p>

#RewriteLog "/usr/local/apache2/logs/rewrite.log"<o:p></o:p>

#RewriteLogLevel 10<o:p></o:p>

RewriteRule ^/(.*)_ssl$ https://%{SERVER_NAME}/$1 [R,L]<o:p></o:p>

<o:p></o:p>

RewriteRule ^/(.*)_nossl$ http://%{SERVER_NAME}/$1 [R,L]<o:p>
</o:p>

其中:

  • RewriteEngine On:打开转换引擎;
  • RewriteLog:定义日志文件,用于调试;
  • RewriteLogLevl:设置日志级别,0表示不输出;数字越大,则输出信息越详细;
  • RewriteRule:定义转换规则,其中:
  • ^/(.*)_ssl$:表示 以 / 开头,以_ssl结尾;
  • https://%{SERVER_NAME}/$1:$1表示URL中 / 后 与 _ssl之前的部分内容;
  • [R, L]:R表示重定向;L表示最后一条规则,即若符合条件,则不再匹配下面规则;
3.       在 ssl 配置文件 (conf/extra/httpd-ssl.conf) 中定义 https->http 的转换规则:

LoadModule rewrite_module modules/mod_rewrite.so<o:p></o:p>

<o:p> </o:p>

<virtualhost _default_:443=""><o:p></o:p></virtualhost>

……<o:p></o:p>

<ifmodule rewrite_module=""><o:p></o:p></ifmodule>

RewriteEngine On<o:p></o:p>

RewriteRule ^/(.*)_nossl$ http://%{SERVER_NAME}/$1 [R,L]<o:p></o:p>

<o:p></o:p>

<o:p></o:p>

<o:p>   </o:p>RewriteRule ^/(.*)_ssl$ https://%{SERVER_NAME}/$1 [R,L]

注:

  • 虽然ssl配置文件会被httpd.conf包括,LoadModule还是需要的;
  • <ifmodule>…</ifmodule>需要定义在VirtualHost内部。

<o:p> </o:p>

4.       再根据规则修改页面中的URL。

<o:p> </o:p>

哈哈,大功告成!

【系统架构设计师】2026年上半年真题论文:论高并发系统的设计与实践 本文围绕高并发系统架构设计展开,重点论述了电商秒杀系统的实战经验。文章采用"痛点-解决方案-效果"的逻辑结构,从缓存设计、异步处理、限流降级、数据库优化等6个维度详细阐述了应对高并发的技术策略。其中,重点介绍了多级缓存体系、基于消息队列的异步处理机制和微服务拆分实践,并辅以实际案例说明如何解决超卖、缓存雪崩等典型问题。全文强调高并发设计需要系统性思维,通过空间换时间、异步换吞吐、横向换能力等原则,最终实现系统吞吐量从500TPS提升至20000TPS的性能突破。 阅读详情

相关推荐

ICDAR数据集简介

ICDAR(文档分析与识别国际会议)是OCR领域的权威会议,每两年发布一次数据集,专注于‌自然场景文本检测与识别‌,涵盖多语言、复杂版式和真实环境挑战。街景、广告牌、票据、手写文档等真实场景图像。包含水平、垂直、倾斜、弯曲文本,背景干扰大,部分文本存在遮挡或模糊。提供文本位置坐标(矩形/四边形框)及内容,无法识别的文本标记为###。以上总结提炼了ICDAR的核心价值与应用方法论。给出最佳实践方法是官网数据预训练模型 + 业务数据微调(比如用PPOCRLabel标注100+张业务图)。

xinghaitao2005的博客 1118

Linux Apache https 转 http

Linux Apache https 转 http /etc/httpd/conf/httpd.conf 中https强制转换注释 /etc/httpd/conf.d/ssl.conf 中ssl证书 整块代码注释 重启http服务 service httpd restart

weixin_46273637的博客 788

【MIMIC数据库教程】一、MIMIC-IV3.1表格与字段详解(一):Hosp和ICU模块表格整体介绍

MIMIC-IV 3.1 版本包含住院 (hosp) 和 重症监护 (ICU)提供全院电子病历数据,包括入院信息、实验室测量、微生物学、用药、账单等,共计22 张表。记录重症监护室数据,如静脉注射、呼吸机设置、生命体征等,共计9 张表。

BD_Design_cs的博客 3426

Apache中http变https

下载SSL证书 只看此博客中一、二、三、四步 安装SSL证书 1)首先上传SSL证书,我用FileZilla Client上传在/root/ssl中: 2)修改apache配置文件 httpd-ssl.conf 我服务器系统是ubuntu,输入命令find / -name httpd-ssl.conf,出现以下结果: 这有几个版本的apache,用的是哪一个呢? 我的解决...

s1124yy 966

动态对抗Zygisk-IL2CppDumper:Unity游戏安全新策略

本文深入探讨了对抗Zygisk-IL2CppDumper攻击的Unity游戏安全新策略。通过实时内存监控、动态混淆技术和异常行为检测体系,有效防止关键代码被动态提取。文章详细介绍了内存指纹系统、运行时混淆方案和五维特征模型等实用防御手段,帮助开发者提升游戏安全性。

weixin_29325955的博客 306

FFT中的精度博弈:定点数缩放、块浮点与溢出处理在Vivado IP核中的实践权衡

本文探讨了在Vivado FFT IP核中实现高精度快速傅里叶变换的关键技术,包括定点数缩放策略、块浮点模式及溢出处理机制。通过分析不同精度控制方案的资源开销与性能权衡,为工程师在医疗成像、雷达信号处理等高动态范围应用中优化FFT实现提供实践指导。

melon的博客 1098

APACHE代理https转发到http解决https跨域问题

昨天开发一个chrome插件浏览器插件:插件自动把当前浏览的页面html代码抓去,通过ajax的方式html代码发送到服务器解析。抓去的站点是https的,我们的解析就普通的tomcat用得的http,做的过程中遇到以下问题: was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://12...

mzllyl的专栏 3270

别再纠结Dify了!实测对比RAGFlow和Dify,聊聊企业知识库到底该怎么选

本文深度对比了RAGFlow和Dify在企业知识库选型中的实际表现,从技术架构、性能指标、部署成本等多维度进行分析。RAGFlow在复杂文档处理和准确率方面表现突出,适合有专职技术团队的企业;而Dify则以低门槛和快速部署见长。文章提供了六维度评估法,帮助企业根据文档复杂度、准确率要求等技术指标做出明智选择。

weixin_30897233的博客 675

怎样使用HTTPS协议

使用步骤及什么时候进行。

/*多学习 不油腻*/ 3547

labelImg使用教程

Anaconda环境 安装 Anaconda 之后,在开始菜单下找到 Anaconda 文件夹 找到 Anaconda Prompt 点击运行 安装 labelImg pip install labelImg #直接命令行输入 启动 labelImg labelImg #直接命令行输入名称即可 labelImg界面 开始标注 快捷键:W(创建方框),A(上一张),D(下一张) XML文件示例 <annotation> <folder>夜读</folder>

G果的博客 3万+

回声消除AEC初探

那段保留即可——在播放期间把麦克风关闭(软件层面的 mute),同样能根除回声,只是会失去“一句话期间仍能捕获背景噪声”的能力。如果还有更细节的需求(比如多语言 TTS、实时流式 ASR),欢迎继续交流。的完整示例,可直接拷贝、改造、集成到你现有的 LLM‑TTS 对话系统中。实际效果取决于用户设备的硬件与驱动,若仍有回声,可让用户佩戴。把扬声器信号(把播放音频拷贝给 AEC)从麦克风流中减去。:TTS 播放的声音被同一个麦克风再次捕获,导致声学回声。三种实现示例,帮助你快速落地。,几乎可以消除所有回声。

NLP与推荐算法 574

Apache从HTTP到HTTPS的实现

介绍 HTTPS和http是什么关系呢?相信很多人都有这个疑问,简单的说HTTPS=http+tls,http我们都知道,就是远程将数据显示在浏览器上的协议,tls是什么呢?安全传输层协议(TLS),简单的说,就是用于在两个通信应用程序之间的数据加密作用的。在重要场合,比如金钱交易等安全性要求高的网站,都会使用HTTPS协议。

ThinkerWalker 6243

基于YOLOv26的道路抛洒物检测系统原理实现

本文提出了一种基于YOLOv26的道路抛洒物智能检测系统,通过深度学习技术实现道路抛洒物的实时检测与分类。系统采用分层架构设计,包含视频采集、目标检测、分类评估和预警处理等模块,能够自动识别轮胎碎片、货物包装、金属零件等多种抛洒物,并根据危险程度分级预警。YOLOv26算法在检测精度和速度上的优势使其特别适合道路监控场景,结合背景建模和运动目标提取技术,有效提高了复杂道路环境下抛洒物的识别率。该系统可集成到现有智能交通监控平台,为道路安全管理提供实时决策支持。

一键难忘的博客 1258

安装配置Apache支持https和fcgi

Apache安装及配置 1.1 下载软件 1、Apr :(wget http://mirrors.hust.edu.cn/apache//apr/apr-1.5.1.tar.gz) 2、Apr-util :(wget http://mirrors.hust.edu.cn/apache//apr/apr-util-1.5.4.tar.gz) 3、Pcre :(wget ftp://ftp.c

nyist327的专栏 3652

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

关于AJP HTTPS切换HTTP Session失效的问题

基础知识: Cookie有三种形式: 1.https only: 当服务器从https协议redirect到http协议后,这样的cookie就会失效。 2.http only: 当服务器从http协议redirect到https协议后,这样的cookie就会失效。 3.http and https: 协议切换不会失效   标准J2ee的Session使用的Cookie名称是 JSES...

solonote的专栏 377

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

透過ZeroSSL為Apache網站申請憑證

透過ZeroSSL為Apache網站申請憑證申請步驟SSL certificate setupSetup Apache download serverInstalling SSL Certificate on Apache參考連結 申請步驟 SSL certificate setup 首先到https://manage.sslforfree.com/login註冊一個帳號並登入後,會看到以下畫面: 點選Create SSL Certificate這一格的New Certificate。 在Enter D

keineahnung2345的博客 1943

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

httpClient 发送https

项目之前都是互发http请求,突然需要改https,发现https发送要比http有难度,现在记录一下; 1. pom.xml 引入的jar <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.5</version> </depend.

HDXxiazai的博客 373

apache mpm php 安全,Ubuntu Apache 切换到php-fpm+mpm_event模式

ubuntu通过apt安装的apache2默认是mpm_prefork模式,想要切换到mpm_event模式,PHP支持库也要改变。非root模式下注意加sudo首先要关掉普通的php模块:a2dismod php7.2apt-get remove libapache2-mod-php7.2然后才可以关掉mpm_prefork:a2dismod mpm_prefork然后启用mpm_event:a...

weixin_29382667的博客 223

event mpm php,Ubuntu Apache 切换到php-fpm+mpm_event模式

ubuntu通过apt安装的apache2默认是mpm_prefork模式,想要切换到mpm_event模式,PHP支持库也要改变。非root模式下注意加sudo首先要关掉普通的php模块:a2dismod php7.2apt-get remove libapache2-mod-php7.2然后才可以关掉mpm_prefork:a2dismod mpm_prefork然后启用mpm_event:a...

weixin_42576804的博客 306

nginx代理apche的ssl

nginx(ssl)代理apache(ssl)nginx和apache是在同一台机子上nginx配置:server { listen 80; server_name name.com; rewrite ^(.*)$ https://name.com$1 permanent;}(强制name.com跳转到https://name.co...

weixin_34279061的博客 147

httpd服务

Apache服务的编译安装 httpd的常用配置 虚拟主机 ssl

m0_72898391的博客 1886

马哥linux高薪中级-web服务器(续一)

2、工作模式切换 httpd支持三种模型,即perfork、worker、event模型。 三种模型的启动方法是不同的,perfork是默认的启动模型,通过httpd命令即可启动,可以通过rpm -ql |grep bin来看到有httpd、http.worker、http.event三个命令。 一般来说,apache的2.2版本之前并不支持ev...

weixin_34177064的博客 241

JMeter基础入门

JMeter是Apache下一款在国外非常流行和受欢迎的开源性能测试工具,JMeter可用于模拟大量负载来测试一台服务器,网络或者对象的健壮性或者分析不同负载下的整体性能。1、压测不同的协议和应用3) FTP5) LDAP 轻量目录访问协议8) TCP等等2、使用场景1)功能测试2)压力测试3)分布式压力测试3、优点1)纯java开发2)上手容易,高性能3)提供测试数据分析4)各种报表数据图形展示4、本地快速安装Jmeter4.x。

okcross0的博客 240

httpd

一个网站就是一个虚拟主机。

m0_64735681的博客 770

压力测试工具-JMeter

一、官网地址 https://jmeter.apache.org/ 二、JMeter是什么? 压力测试工具 三、下载 下载地址:http://jmeter.apache.org/download_jmeter.cgi 四、安装: 1.双击bin目录下的jmeter.bat文件,提示需要jdk1.8.(官网说需要jdk8以上的版本,见下图) ...

qq_41629684的博客 489

将WordPress站点从http切换至https

声明:本文全部内容为原创内容,禁止在未经授权的情况下进行任何二次创作和修改,转载请注明出处。 摘要 这篇文章将会记录如何将Wordpress站点从http切换至https。 注意:确定站点能够通过http协议正确访问,否则在经过如下步骤切换至https后,可能无法再次访问站点。 步骤一:打开wp-config.php文件 打开wp-config.php文件,假设Wordpress安装的根目录为“w...

david394的博客 2752
上一篇: 如何在Apache中方便地切换http和https?
下一篇: YMU2.0开发总结
java_veteran
博客等级 码龄19年 2粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值