当前位置: 首页 > 知识库问答 >
问题:

作为SSL终端和负载平衡器的OpenShift-Nginx pod

司马祖鹤
2023-03-14

过去,我在Ubuntu上为nginx使用了以下配置文件。它做以下工作:

  1. SSL终止
  2. 负载均衡
  3. 插入自定义标头x-nginx-header
  4. 记录调用
events { }

http {
    log_format main '$time_iso8601 - $remote_addr - "$http_user_agent" - "$request" - $request_id '
    '- $status - $body_bytes_sent - $request_time ';

    access_log /home/ubuntu/project-demo/logs/access.log main;
    error_log /home/ubuntu/project-demo/logs/error.log error;
    proxy_cache_path /data/nginx/cache keys_zone=one:10m;

    upstream demoapp {
        least_conn;
        server localhost:3001;
        server localhost:3002;
        server localhost:3003;
        server localhost:3004;
    }

    server {
        listen 443 ssl;

        ssl_certificate         /home/ubuntu/project-demo/certs/server.crt;
        ssl_certificate_key     /home/ubuntu/project-demo/certs/server.pem;
        ssl_protocols           TLSv1.1 TLSv1.2;
        ssl_ciphers             HIGH:!aNULL:!MD5;
        ssl_session_cache       shared:SSL:20m;
        ssl_session_timeout     4h;

        location / {
            proxy_set_header X-Nginx-header $request_id;
            proxy_pass http://demoapp/;
        }
    }
}

我想用部署为OpenShift集群中的pod的nginx复制相同的内容。我可以在OpenShift集群的目录中看到nginx。当我尝试启动一个时,它显示了一个GitHub存储库的字段,其中包含一个示例存储库--https://GitHub.com/sclorg/nginx-ex.git

共有1个答案

聂炜
2023-03-14

此映像的nginx 1.14版本的文档可以在这里找到

这是一个s2i图像。s2i是一种构建机制,它接受源代码(在您的例子中是nginx配置)和基本s2i映像(在您的例子中是sclorg、nginx、contianer映像)并生成运行时映像(在您的例子中是nginx映像和配置)。

根据nginx s2i映像的上述文档,如果将s2i构建过程指向VCS存储库(或本地目录),其中包含以下任何文件,nginx s2i builder映像将自动使用这些文件,以生成配置的运行时容器映像。

./nginx.conf-- The main nginx configuration file

./nginx-cfg/*.conf
Should contain all nginx configuration we want to include into image

./nginx-default-cfg/*.conf
Contains any nginx config snippets to include in the default server block

./nginx-start/*.sh
Contains shell scripts that are sourced right before nginx is launched

./
Should contain nginx application source code
 类似资料:
  • 目标:将弹性/静态IP分配给负载平衡器(LB),以服务于处理DNS(端口53)、HTTPS(端口443)、HTTP(端口80)的EC2实例。 需要静态IP来正确配置DNS记录(即A记录)。需要在后端/服务器上终止TLS,以提供无限制的 经典的负载平衡器允许自定义安全规则,并允许在EC2实例上终止SSL。问题是静态IP不能分配给经典LB,只能分配给其中的单个实例,这无法平衡负载。 要分配静态IP,我

  • 我们有两个Kafka节点,出于本问题范围之外的原因,我们希望设置一个负载平衡器来终止生产者(客户端)的SSL。负载平衡器托管的SSL证书将由客户端本机应信任的受信任/根CA签名。 所以连接看起来像: 这是否可行,或者Kafka是否以某种方式要求直接在Kafka服务器上设置SSL? 谢谢

  • 我在AWS中的应用程序ELB后面有一个ec2实例。我想将SSL应用于ec2实例和负载平衡器。对于ec2实例,我购买了ssl并安装了它,它工作正常。对于负载平衡器,我将使用免费的AWS ACM证书并将其安装在负载平衡器上。这会有什么问题吗?i、 e.在ec2和elb上安装SSL。

  • 我们在AWS VPC中有一个面向内部的应用程序负载平衡器。运行在公用子网中的web应用程序正在访问此文件。该web应用位于自定义域url后面,并使用SSL证书进行安全保护。由于API负载平衡器未应用SSL,因此从web app到API LB的通信失败。 是否可以在AWS中为面向内部的负载平衡器获取SSL证书?

  • 我有一个在AWS上运行的项目。结构如下: 我已使用AWS证书管理器为负载平衡器创建了一个证书。所以现在的流量是: 但由于加载网页时实例上没有证书,因此会收到“站点不安全”警告。 如何创建从客户端到负载均衡器后面的任何实例的完整SSL连接? 编辑 以下是nginx配置(适用于所有实例)

  • 在花了几个小时阅读Http客户机文档和源代码后,我决定在这里寻求帮助。 我有一个使用循环算法的负载均衡服务器