![](/img/trans.png)
[英]AWS ELB when target (backend) applications runs on multiple ports of the same EC2
[英]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.