How to connect my NodeJS with my Angular (in Nginx)

后端 未结 2 500
孤街浪徒
孤街浪徒 2021-01-07 03:09

I\'ve a repo with angular and nodejs. I performed in jenkins:

# install globally
npm install -g bower
npm install -g gulp

# install
bower install
npm insta         


        
相关标签:
2条回答
  • 2021-01-07 03:29

    One solution is to link both containers as described in @manish's answer.

    But be aware that this is the legacy way of connecting containers together.


    From now on, you can use the new docker network feature to create a virtual network and connect both containers to that network:

    docker network create mynetwork
    docker run -d --net=mynetwork -p 8888:8888 --name "nodejs" localhost:5000/test/nodejs:1
    docker run -d --net=mynetwork -p 80:80 --name "nginx" localhost:5000/test/nginx:1
    

    With such a setup, your nginx config file must use

    server nodejs:8888 weight=10 max_fails=3 fail_timeout=30s;
    

    as you now refer to other container by their name.

    0 讨论(0)
  • 2021-01-07 03:32

    You need to expose the port of the node.js container to which nginx(angular) container will connect. See the Connect using network port mapping section of docker documentation.

    Update : I think, you need to configure the nginx configuration file to the node container. This question has sample nginx file related to your use case (although, not related to containers).

    Edit : To map the node app with the nginx, you first need to link the node container with nginx container.

    docker run -d -p 80:80 --name "nginx" --link nodejs:nodejs localhost:5000/test/nginx:1
    

    When you link the node container with the nginx container, the node container's address will be saved in the /etc/hosts. So the nginx container can access the node's address from there.

    So, in nginx configuration file, the nodejs will be accessible as nodejs' container address:

    http {
    
            upstream node-app {
                  server nodejs:8888 weight=10 max_fails=3 fail_timeout=30s;
            }
    
            server {
                  listen 80;
    
                  location / {
                    proxy_pass http://node-app;
                    proxy_http_version 1.1;
                    proxy_set_header Upgrade $http_upgrade;
                    proxy_set_header Connection 'upgrade';
                    proxy_set_header Host $host;
                    proxy_cache_bypass $http_upgrade;
                  }
            }
    }
    
    0 讨论(0)
自定义标题
段落格式
字体
字号
代码语言
提交回复
热议问题