基于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
