Fra*_*ain 4 nginx docker docker-compose
我尝试使用相同的nodejs应用程序在两个容器之间进行nginx反向代理负载平衡.
目录结构:
.
+-- docker-compose.yml
+-- nginx
+-- nodejs
| +-- index.js
| +-- …
+-- php
Run Code Online (Sandbox Code Playgroud)
泊坞窗,compose.yml:
version: "3.1"
services:
nginx-proxy:
image: nginx:alpine
ports:
- "8000:80"
volumes:
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf
links:
- php:php-app
- nodejs:nodejs-app
nodejs:
image: node:alpine
environment:
NODE_ENV: production
working_dir: /home/app
restart: always
volumes:
- ./nodejs:/home/app
command: ["node", "index.js"]
php:
image: php:apache
volumes:
- ./php:/var/www/html
Run Code Online (Sandbox Code Playgroud)
index.js 在港口听 8080
nginx conf default.conf:
upstream nodejs-upstream {
server nodejs-app:8080;
}
server {
listen 80;
root /srv/www;
location / {
try_files $uri @nodejs;
}
location @nodejs {
proxy_pass http://nodejs-upstream:8080;
proxy_set_header Host $host;
}
location /api {
proxy_pass http://php-app:80/api;
proxy_set_header Host $host;
}
}
Run Code Online (Sandbox Code Playgroud)
现在我启动应用程序
docker-compose up --scale nodejs=2
Run Code Online (Sandbox Code Playgroud)
负载平衡吗?
8080.如何在nodejs app的两个实例之间进行nginx服务器负载均衡?
有一个更好的方法吗?
编辑1
我仍然很想知道如何在没有jwilder/nginx-proxy的情况下做到这一点.谢谢
编辑2
我有一些适用的东西:
default.conf:
upstream nodejs-upstream {
server nodejs_1:8080;
server nodejs_2:8080;
}
Run Code Online (Sandbox Code Playgroud)
这可以在两个nodejs容器启动时工作.当我docker stop nodejs_2,应用程序仍然可用(负载平衡似乎工作),但请求可能真的很慢结束(在localhost上最多1分钟).如果我重新启动此容器,它再次正常工作......
问:有更好的方法吗?
是的,国际海事组织.使用jwilder/nginx方法.它会自动更新并发现任何新容器,并将其添加到其平衡池中.
https://github.com/jwilder/nginx-proxy
version: "3.1"
services:
nginx-proxy:
image: jwilder/nginx
ports:
- "8000:80"
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
nodejs:
image: node:alpine
environment:
NODE_ENV: production
VIRTUAL_ENV: localhost
VIRTUAL_PORT: 8080
working_dir: /home/app
restart: always
volumes:
- ../nodejs:/home/app
command: ["node", "index.js"]
Run Code Online (Sandbox Code Playgroud)
Nginx将在缩放时自动更新.请注意应用服务中的VIRTUAL_ENV env var.该var将从nginx中读取.而且您不需要任何进一步的配置.(无.conf文件)
| 归档时间: |
|
| 查看次数: |
1227 次 |
| 最近记录: |