全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网
容器服务

简单路由-HTTP 强制跳转到 HTTPS

更新时间:2017-06-07 13:26:11

您可以根据 将暴露的 HTTP 服务修改为 HTTPS 服务 进行操作实现通过 HTTPS 协议访问您需要的网站。例如下面这样的应用模板。

  1. app:
  2. ports:
  3. - 80/tcp
  4. image: 'registry.cn-hangzhou.aliyuncs.com/linhuatest/hello-world:latest'
  5. labels:
  6. # 此处只是 http/https/ws/wss 协议
  7. aliyun.routing.port_80: "http://www.example.com"
  8. restart: always

配置好负载均衡之后,访问 HTTPS 协议的网站如下所示。

1

除此之外,您还可以进行配置使 HTTP 协议请求强制跳转到 HTTPS 协议。

下面的示例配置了一个 nginx 容器并将 rewrite 规则写到配置文件中,即如果收到请求 http://www.example.com,则返回 301 且自动跳转到 https://www.example.com

登录集群中的每台机器,创建 nginx 配置文件(将会作为 volume 挂载到容器 nginx 中)/ngx/nginx.conf 如下所示。

  1. user nginx;
  2. error_log /var/log/nginx/error.log warn;
  3. pid /var/run/nginx.pid;
  4. events {
  5. worker_connections 65535;
  6. }
  7. http {
  8. include /etc/nginx/mime.types;
  9. default_type application/octet-stream;
  10. log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  11. '$status $body_bytes_sent "$http_referer" '
  12. '"$http_user_agent" "$http_x_forwarded_for"';
  13. access_log /var/log/nginx/access.log main;
  14. keepalive_timeout 65;
  15. gzip on;
  16. server {
  17. listen 80;
  18. server_name localhost;
  19. return 301 https://$host$request_uri;
  20. }
  21. }

nginx 容器模板如下所示。

  1. nginx:
  2. ports:
  3. - 80:80/tcp # 映射到主机的 80 端口
  4. image: 'nginx:latest'
  5. labels:
  6. aliyun.global: true # 每台机器均部署一个 nginx 容器,达到高可用目的
  7. volumes:
  8. - /ngx/nginx.conf:/etc/nginx/nginx.conf
  9. restart: always

集群负载均衡的配置如下图所示(其中,前端 80 端口 > 后端 80 端口,即主机端口 > nginx 的容器端口 80)。

2

当您访问 http://www.example.com 时,返回的 HTTP 协议内容如下图所示,即完成了正确跳转到 https://www.example.com

3

本文导读目录