簡體   English   中英

在 AWS 上為公共流量啟用更多端口? Nginx/Docker 多應用設置

[英]Enable more ports to public traffic on AWS? Nginx/Docker multiple applications setup

我目前有一個 EC2 實例在 AW 上運行,有兩個應用程序(一個前端應用程序和一個 API,標准的東西)

默認情況下,我公司的 devops 團隊為公共流量啟用了端口 80 和 443。

我嘗試使用 Nginx 將傳入端口:80 的請求重定向到 docker 容器上設置的不同應用程序/api 端口。

示例:我的應用程序當前在端口:8080上運行,我希望當用戶訪問我的域時,nginx 將用戶重定向到在:8080上運行的應用程序

nginx.conf

events {}
http {
    server {
        listen 80;
        server_name company.com;
        location / {
            proxy_pass http://0.0.0.0:8080;
        }    
    }
    server {
        listen 443 ssl;
        server_name company.locallabs.com;

        ssl_certificate /etc/ssl/wildcard.company.com.crt;
        ssl_certificate_key /etc/ssl/wildcard.company.com.key;
        
        location /api {
            rewrite /api/(.*) /$1         break;
            proxy_pass http://0.0.0.0:8081;
        }
    }
}

問題:端口:8080只能在服務器內訪問(當我使用 SSH 訪問並在服務器內運行 CURL 時,它工作正常)。

即使我在 Nginx 上設置了重定向,是否應該為公共流量啟用:8080

nginx 日志給了我

2021/04/14 04:01:07 [error] 6#6: *7 connect() failed (111: Connection refused) while connecting to upstream, client: 3.90.2.223, server: company.com, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:8080/", host: "company.com"

不,你沒有。

我建議您考慮部署 docker 容器jc21/nginx-proxy-manager 它運行良好,並具有額外的好處,它為它代理的每個服務管理 LetsEncrypt SSL 證書。

讓 nginx 容器攝取主機端口 80 和 443,並使用 UI 為您的開發人員正在處理的每個 docker 容器定義域和端口。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM