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/ 正常,注意最后面的斜杠不能省略