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;
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;
proxy_pass $amonte;
try_files $uri $uri/ /index.php?$query_string;
gzip_static activat;
}
}
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
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:
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
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:
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:
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
retele:
rețea-aplicație:
nume: ${APP_NAME}-network
şofer: pod
proxy:
extern:
nume: nginx-proxy
volume:
dbdata:
șofer: local
elasticsearch-data:
șofer: local