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