apache - 使用letsencrypt将https重定向到http的https virtualhost apache代理后面的http nginx dockers
问题描述
我在 Debian VPS 中安装了 Apache 服务器,我用它作为 Nginx 容器的代理反向包含静态网站,我将容器的端口 80 映射到 3002 并且它运行良好,但是当我访问https://时出现问题www.example.com它将我重定向到http://www.example.com!我这样设置我的虚拟主机:
第一个 vHost (HTTP)
<VirtualHost *:80>
ServerName example.com
<Location />
Order allow...
</Location>
ProxyRequests Off
ProxyPreserveHost On
#proxy to docker nginx -p 3002:80
ProxyPass / http://localhost:3002
ProxyPassReverse / http://localhost:3002
</VirtualHost>
第二个 vHost(由 Letencrypt Bot 创建的 HTTPS)
<VirtualHost *:443>
ServerName example.com
<Location />
Order allow...
</Location>
ProxyRequests Off
ProxyPreserveHost On
#proxy to docker nginx -p 3002:80
ProxyPass / http://localhost:3002
ProxyPassReverse / http://localhost:3002
#crt files..
SSLCertificateFile /etc/letsen...
SSLCertificateKeyFile /etc/letsen..
Include /etc/letsencrypt/option...
</VirtualHost>
注意:docker 镜像是 kyma/docker-nginx
解决方案
您需要 www 的别名:
ServerName: example.com
ServerAlias: www.example.com
推荐阅读
- java - 如何在 JAVA 中使用 JSON 对象填充速度字符串?
- php - 由 unset() 和 print_r() 处理的数组要么是完整的,要么是什么都没有
- ansible - Ansible Hostvars to List 或 Dictionary 以在以后的任务中匹配(键:值)
- reactjs - 如何使用 jest 在 React 功能组件中模拟异步调用
- jquery - 下拉菜单在 mvc 和 jquery 中无法正常工作
- c - ISO C90 禁止混合声明和代码......但在某些情况下允许它?
- r - 保护 VECSXP 中的元素
- javascript - Mapbox GL JS 获取 geoson 边界内的特征
- angular - “路径”参数中的错误必须是字符串类型。接收类型未定义
- kotlin - 将 listview 绑定到配置源属性