编什么程

基于Docker实现Nginx+Nodejs负载均衡

2020-02-28  本文已影响0人  沙蒿同学

nginx配置(nginx.conf)


user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    upstream sample {
     server 127.0.0.1:3000;
     server 127.0.0.1:3001;
     keepalive 64;
    }
    server {
      listen 8080;
      server_name 127.0.0.1;
      location / {
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;
        proxy_set_header Connection "";
        proxy_http_version 1.1;
        proxy_pass http://sample;
      }
    }
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

docker-compose.yml 配置

此配置在 基础Docker搭建node.js && redis环境,安装express 基础上做修改的。

version: "3"
services:
  nginx:
    image: nginx:latest
    container_name: nginx
    ports:
      - "8080:8080"
    links:
      - node_1
      - node_2
    volumes:
      - /opt/nginx/conf.d:/etc/nginx/conf.d
      - /opt/nginx/nginx.conf:/etc/nginx/nginx.conf
      - /opt/nginx/logs:/var/log/nginx
  node_1:
    image: node:latest
    container_name: node_1
    hostname: node_1
    ports:
      - "3000:3000"
    working_dir: /app
    volumes:
      - ./app:/app  #创建项目根目录
      # ./package.json:/source/app/package.json
    links:
      - redis
    command: ["/bin/sh", "-c", "npm install && npm start"]
    restart: always
  node_2:
    image: node:latest
    container_name: node_2
    hostname: node_2
    ports:
      - "3001:3000"
    working_dir: /app
    volumes:
      - ./app:/app  #创建项目根目录
      # ./package.json:/source/app/package.json
    links:
      - redis
    command: ["/bin/sh", "-c", "npm install && npm start"]
    restart: always
  redis:
    image: redis:5-alpine
    container_name: redis
    hostname: redis
    command: redis-server /usr/local/etc/redis/redis.conf --requirepass redis123
    volumes:
      - /opt/redis/database:/data
      - /opt/redis/redis.conf:/usr/local/etc/redis/redis.conf
    ports:
      - "6379:6379"
    restart: always

调试

docker-compose up -d


image.png
上一篇 下一篇

猜你喜欢

热点阅读