Как запустить nginx и узел в одном определении задачи в AWS ECS - PullRequest
0 голосов
/ 10 февраля 2019

Мы пытаемся запустить сервис с двумя контейнерами в AWS ECS с FARGATE:

  1. node.js
  2. nginx, обслуживающий статические файлы и трафик прокси для node.js

Проблема в том, что nginx всегда запускается быстрее, чем node.js.Таким образом, апстрим не готов.Из-за этого происходит сбой nginx.

Вот мой конфиг nginx

server {
listen       80;
server_tokens off;

auth_basic "closed website";
auth_basic_user_file authnginx/htpasswd;

add_header X-XSS-Protection "1; mode=block";
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
add_header Strict-Transport-Security "max-age=86400; includeSubDomains";
add_header Referrer-Policy "strict-origin-when-cross-origin";
root /usr/share/nginx/html;
# gzip_static on;
# brotli_static on;

location = /status {
   access_log off;
   allow all;
   return 200 "healthy\n";
}

location / {
    try_files $uri @backend;
}

location @backend {
    proxy_pass http://www-development-node:3000;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    # Following is necessary for Websocket support
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";

    proxy_connect_timeout 70;
}

location ~* .(ico|css|js|gif|jpg|jpeg|png|svg|eot|ttf|woff|woff2|mp4)$ {
    expires 365d;
    access_log off;
}

location ~ /\. {
    deny all;
    access_log off;
    log_not_found off;
}

}

Возможно, nginx может игнорировать отсутствие сервера node.js, покаоно готово?

1 Ответ

0 голосов
/ 11 февраля 2019

Вы можете попытаться поместить links в раздел сетевых настроек определения контейнера nginx как node-container-name:www-development-node.

...