Nginx代理Portainer


Nginx代理Portainer

背景

微服務項目中用到了Portainer來作為Docker Swarm集群的管理工具。

由於生產環境IT管理員僅允許開放80端口,因此希望可以使用Nginx進行代理,與業務公用一個80端口號

配置

修改/etc/nginx/conf.d/default.conf

# WebSocket
map $http_upgrade $connection_upgrade {
    default upgrade;
    '' close;
}

# 限制客戶端文件上傳最大大小
client_max_body_size 4096M;

#docker版Nginx需要增加此配置
#resolver 127.0.0.11 valid=30s;

#http節點中可以添加多個server節點
server{
    listen 80;
    # 配置真實域名
    server_name _;
    keepalive_timeout   70;

    location ~ "^/cloud/portainer(/?.*)" {
       # 因為nginx和nacos在同一個docker網絡,這里使用服務名進行訪問
       # 你可以改成自己的IP地址
        proxy_pass http://portainer:9000$1$is_args$args;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    
    # 錯誤頁面
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

測試

訪問 http://192.168.0.2/cloud/portainer/ 正常,注意最后面的斜杠不能省略


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM