开发者社区> 问答> 正文

Swarm 集群  服务发现和负载均衡 简单路由-HTTP 强制跳转到 HTTPS



步骤1 实现 https 协议访问 helloworld 应用


  1. 您可以使用编排模板创建 hello world 应用。
    应用模板模板示例如下。

app:
     ports:
         - 80/tcp
     image: 'registry.cn-hangzhou.aliyuncs.com/linhuatest/hello-world:latest'
     labels:
         # 此处只是 http/https/ws/wss 协议
         aliyun.routing.port_80: "http://www.example.com"
     restart: always
2. 配置好负载均衡之后,参见简单路由-HTTP 协议变为 HTTPS 协议,访问 HTTPS 协议的网站如下所示。






步骤2 配置 nginx 容器实现强制跳转到 HTTPS


  1. 您可以配置使 HTTP 协议请求强制跳转到 HTTPS 协议。本例中,创建一个 nginx 容器,监听 http 请求,将所有的 http 请求通过 rewrite 重写到 https上,从而将请求重定向至 https 协议,实现基于 www.example.com 域名的强制跳转。下面的示例配置了 nginx 容器并将 rewrite 规则写到配置文件中,即如果收到请求 http://www.example.com,则返回 301 且自动跳转到 https://www.example.com
    • 登录集群中的每台机器,创建 nginx.conf 配置文件,该配置文件将以 volume 形式挂载到容器 nginx 中。cd /                         ## 返回根目录
    • mkdir ngx                    ## 创建 ngx 目录
    • vim nginx.conf               ## 创建 nginx.conf 配置文件

  • 在/ngx/nginx.conf配置文件中输入如下的配置代码。user  nginx;
  • error_log  /var/log/nginx/error.log warn;
  • pid        /var/run/nginx.pid;
  • events {
  •   worker_connections  65535;
  • }
  • http {
  •   include       /etc/nginx/mime.types;
  •   default_type  application/octet-stream;
  •   log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
  •                     '$status $body_bytes_sent "$http_referer" '
  •                     '"$http_user_agent" "$http_x_forwarded_for"';
  •   access_log  /var/log/nginx/access.log  main;
  •   keepalive_timeout  65;
  •   gzip  on;
  •   server {
  •       listen       80;
  •       server_name  localhost;
  •       return 301 https://$host$request_uri;
  •   }
  • }
  • 2. 使用编排模板创建 nginx 应用。
  • nginx 应用的编排模板如下所示。nginx:
  •      ports:
  •        - 80:80/tcp # 映射到主机的 80 端口
  •      image: 'nginx:latest'
  •      labels:
  •        aliyun.global: true # 每台机器均部署一个 nginx 容器,达到高可用目的
  •      volumes:
  •        - /ngx/nginx.conf:/etc/nginx/nginx.conf
  •      restart: always
  • 3. 配置集群负载均衡的监听规则。


    4.验证 HTTP 强制跳转到 HTTPS
    当您访问 http://www.example.com 时,会自动跳转到 https://www.example.com 。返回的 HTTP 协议内容如下图所示,即完成了正确跳转到 https://www.example.com

    展开
    收起
    青蛙跳 2018-08-31 21:44:39 1420 0
    0 条回答
    写回答
    取消 提交回答
    问答排行榜
    最热
    最新

    相关电子书

    更多
    大规模场景下KubernetesService 负载均衡性能 立即下载
    《应用型负载均衡ALB产品解读》 立即下载
    阿里云网络-SLB负载均衡产品介绍 立即下载