最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Laravel + Nginx Docker Swarm: 504 Gateway Time-out - Stack Overflow

programmeradmin2浏览0评论

I have 2 VMs from azure portal,Manager Node and Worker Node, I am running nginx on Manager node and Laravel on worker node and this setup is causing me 504 Gateway Time-out error when I access http://manager_node_ip on browser

Nginx container logs:

2024/11/22 06:57:15 [error] 28#28: *6 upstream timed out (110: Connection timed out) while connecting to upstream, client: 10.0.0.2, server: localhost, request: "GET / HTTP/1.1", upstream: "fastcgi://10.0.1.16:9000", host: "4.257.122.69"

When I put nginx and laravel on manager node then it simply works.

Following are my files:

docker-stack.yml

version: '3.8'

services:
  laravel:
    image: dinesh/api_backend:uat-1.0  # Use your hosted image
    deploy:
      placement:
        constraints: [node.role == worker]
      replicas: 1
    environment:
      RABBITMQ_HOST: rabbitmq
      RABBITMQ_PORT: 5672
      RABBITMQ_USER: guest
      RABBITMQ_PASSWORD: guest
      RABBITMQ_VHOST: /
      RABBITMQ_QUEUE: default
    ports:
      - "9000:9000"
    networks:
      - laravel-network
    volumes:
      - laravel-data:/var/www

  scheduler:
    image: dinesh/api_backend:uat-1.0  # Use the same image
    deploy:
      replicas: 1
    entrypoint: ["sh", "-c", "while true; do php artisan schedule:run --verbose --no-interaction; sleep 60; done"]
    networks:
      - laravel-network

  worker:
    image: dinesh/api_backend:uat-1.0  # Use the same image
    deploy:
      replicas: 1
    entrypoint: ["sh", "-c", "php artisan queue:work --verbose --tries=3 --timeout=90"]
    depends_on:
      - rabbitmq
    networks:
      - laravel-network

  nginx:
    image: nginx:latest
    deploy:
      placement:
        constraints: [node.role == manager]
      replicas: 1
    ports:
      - "80:80"
    volumes:
      - ./nginx.conf:/etc/nginx/conf.d/default.conf
      - laravel-data:/var/www
    depends_on:
      - laravel
    networks:
      - laravel-network

  rabbitmq:
    image: rabbitmq:3-management
    deploy:
      replicas: 1
    ports:
      - "5672:5672"
      - "15672:15672"
    environment:
      RABBITMQ_DEFAULT_USER: guest
      RABBITMQ_DEFAULT_PASS: guest
    volumes:
      - ./rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf
      - rabbitmq-data:/var/lib/rabbitmq
    networks:
      - laravel-network
    command: ["rabbitmq-server"]
    init: true

networks:
  laravel-network:
    driver: overlay
    attachable: true

volumes:
  laravel-data:
    driver: local
  rabbitmq-data:
    driver: local

rabbitmq.conf

default_queue_type = durable

nginx.conf

server {
    listen 80;
    server_name localhost;

    root /var/www/public;
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_pass laravel:9000; # Laravel service name and PHP-FPM port
        fastcgi_read_timeout 3600;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    location ~ /\.ht {
        deny all;
    }
}
发布评论

评论列表(0)

  1. 暂无评论