首页 > 解决方案 > Nginx 代理到 CFSS 连接被拒绝

问题描述

我有CFSSL服务在 kubernetes 上的 port 上运行8888。我可以从另一个直接引用的 pod 访问它的 API cfssl:8888。我想通过 Nginx 公开它,我让 Nginx 在单独的 pod 中运行,配置如下

upstream cfssl {
    server cfssl:8888;
}

server {
    listen         80 default_server;
    listen         [::]:80 default_server;
    server_name    localhost;

    location / {
        proxy_pass http://cfssl;
        proxy_set_header Host cfssl;
    }
}

但是这个 Nginx 配置不起作用,我可以cfssl:8888在 Nginx pod 中访问,但是当我这样做时curl localhost:80

curl: (7) Failed to connect to localhost port 80: Connection refused

这个设置有什么问题?

标签: nginxkubernetescfssl

解决方案


在 location 块内你没有提到端口

location / {
        proxy_pass http://cfssl;

它应该是这样的

server {
    listen         80 default_server;
    listen         [::]:80 default_server;
    server_name    localhost;

    location / {
        proxy_pass http://cfssl:8888;
        proxy_set_header Host cfssl;
    }

推荐阅读