ECS布署nginx+nodesjs

ECS布署nginx+nodesjs

代码共享

我是把nodejs的代码目录当成了数据卷。然后nginx加载数据卷。
关键配置如下。

nodejs dockerfile

VOLUME ["/var/app"]

nginx container

"volumesFrom": [
        {
          "sourceContainer": "nodejs",
          "readOnly": true
          }
],

容器通信

brigde的方式有link方式连接。
我用的网络模式是awsvpc, 在awsvpc中可以直接通过localhost通信。
nginx配置示例如下。

upstream nodejs {
    server 127.0.0.1:3000;
    keepalive 256;
}

server {
    listen 80;
    location  /api/ {
        proxy_pass  http://nodejs/api/;
        proxy_set_header   Connection "";
        proxy_http_version 1.1;
        proxy_set_header        Host            $host;
        proxy_set_header        X-Real-IP       $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;

        expires 6h;
        add_header Pragma public;
        add_header Cache-Control "public";
        access_log off;
    }
}

需要规避的坑

我原来在nginx在支持2个站点。
通过server_name区分。
但是在ECS中的nginx中,server_name解析出来是localhost。
最后我只能分成两个server。

Tags:
One Comment