Puncte:0

Docker + Nginx + Mai multe site-uri cu proxy invers; problema directorului

drapel tr

Tocmai mi-am configurat serverul pentru revproxy multi-site folosind rețeaua externă Docker și mi-am configurat containerul revproxy nginx să funcționeze cu fastcgi. În acest moment, în scopuri de testare, unul dintre site-uri funcționează, dar se pare că nginx pentru containerul site-ului web nu își dă seama corect calea pentru fișierul index laravel și îmi oferă doar pagina implicită „Bun venit nginx”.

As fi foarte recunoscator pentru orice ajutor.

Ale mele Dockerfile pentru containerul revproxy

DIN nginx:alpin

EXPUNERE 80/tcp
EXPUNERE 443/tcp

CMD ["/bin/sh", "-c", "exec nginx -g 'daemon off;';"]
WORKDIR /var/www

docker-compune pentru containerul revproxy

versiunea: „3.8”
Servicii:
  nginx-proxy:
    construi: ./
    container_name: nginx-proxy
    porturi:
      - 80:80
      - 443:443
    volume:
      - ./default.conf:/etc/nginx/conf.d/default.conf
      - /var/www:/var/www/html
      - ./backend-not-found.html:/var/www/html/backend-not-found.html
      - ./certs:/etc/nginx/certs:ro
    retele:
      - proxy
    reporniți: întotdeauna

retele:
  proxy:
    extern:
      nume: nginx-proxy

nginx.conf fișier pentru containerul revproxy


Server {
    asculta 80;
    nume_server site.com;

    set de caractere UTF-8;
    
    root /var/www/html/laravel/public;

    pagina de eroare 404 /backend-not-found.html;
    locație = /backend-not-found.html {
        permite totul;
    }

    locație ~ \.php$ {
        resolver 127.0.0.11;
        setați $upstream laravel-app:9000;
        # nginx va porni acum dacă gazda nu este accesibilă
        fastcgi_pass $upstream; 
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
    Locație / {
        resolver 127.0.0.11;
        setați $upstream http://laravel-nginx:80;
        # nginx va porni acum dacă gazda nu este accesibilă
        proxy_pass $amonte;
        try_files $uri $uri/ /index.php?$query_string;
        gzip_static activat;
    }
}
# Mod implicit
Server {
    asculta 80 default_server;

    numele serverului _;
    rădăcină /var/www/html;

    set de caractere UTF-8;

    pagina de eroare 404 /backend-not-found.html;
    locație = /backend-not-found.html {
        permite totul;
    }
    Locație / {
        întoarce 404;
    }

    access_log off;
    log_not_found off;
    error_log /var/log/nginx/error.log eroare;
}

Și docker-compune fișier pentru containerul site-ului web

versiunea: „3.8”
Servicii:

  Serviciu #PHP
  aplicatie:
    construi:
      argumente:
        utilizator: alex
        uid: 1000
      context: ./
      dockerfile: Dockerfile
    container_name: ${APP_NAME}-app
    reporniți: întotdeauna
    tty: adevărat
    work_dir: /var/www
    porturi:
      - 9000:9000
    link-uri:
      - db
    volume:
      - ./:/var/www
      - ./docker-compose_configs/php/custom.ini:/usr/local/etc/php/conf.d/custom.ini
    retele:
      - proxy
      - rețea-aplicație

  Serviciul #Nginx
  nginx:
    imagine: nginx:alpine
    container_name: ${APP_NAME}-nginx
    reporniți: întotdeauna
    tty: adevărat
    porturi:
      - 8080:80
    reporniți: întotdeauna
    volume:
       - ./:/var/www/html
    retele:
      - proxy
      - rețea-aplicație
    depinde de:
      - aplicație
    link-uri:
      - aplicație


  Serviciul #MySQL
  db:
    imagine: mysql:latest
    container_name: ${APP_NAME}-db
    reporniți: dacă nu este oprit
    tty: adevărat
    porturi:
      - 3306:3306
    mediu inconjurator:
      MYSQL_DATABASE: ${DB_DATABASE}
      MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
      MYSQL_PASSWORD: ${DB_PASSWORD}
      MYSQL_USER: ${DB_USERNAME}
      SERVICE_TAGS: dev
    retele:
      - rețea-aplicație
    volume:
      - dbdata:/var/lib/mysql
      - ./docker-compose_configs/mysql/my.cnf:/etc/mysql/my.cnf


  #PhpMyAdmin
  phpmyadmin:
    imagine: phpmyadmin/phpmyadmin
    container_name: ${APP_NAME}-pma
    mediu inconjurator:
      PMA_HOST: db
      PMA_ARBITRAR: 1
      UPLOAD_LIMIT: 400 M
    reporniți: întotdeauna
    retele:
      - rețea-aplicație
    porturi:
      - 8081:80
    depinde de:
      - nginx
      - db

  #elasticsearch
  elasticsearch:
    imagine: elasticsearch:7.12.1
    container_name: ${APP_NAME}-elasticsearch
    volume:
      - elasticsearch-data:/usr/share/elasticsearch/data
    mediu inconjurator:
      - discovery.type=single-node
      - cluster.routing.allocation.disk.threshold_enabled=false
      - bootstrap.memory_lock=true
      - „ES_JAVA_OPTS=-Xms512m -Xmx512m”
    limite:
      memlock:
        moale: -1
        greu: -1
    porturi:
      - „9200:9200”
    retele:
      - rețea-aplicație
    depinde de:
      - db

#Docker Networks
retele:
  rețea-aplicație:
    nume: ${APP_NAME}-network
    şofer: pod
  proxy:
    extern:
      nume: nginx-proxy

#Volume
volume:
  dbdata:
    șofer: local
  elasticsearch-data:
    șofer: local

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.