Puncte:0

Docker + Symfony + Nginx + PHP 8.1 gateway prost configurați php pentru Nginx

drapel cn

Încerc să accesez aplicația mea symfony printr-o setare de compunere docker

Am probleme cu nginx implicit.conf Când încerc să accesez aplicația, am un gateway prost

jurnalele docker arată o eroare:

niciun rezolutor definit pentru a rezolva aplicația, client: 193.32.126.216

asa ca am incercat sa pun 127.0.0.1:9000 în loc de aplicație: 9000 și primesc o nouă eroare:

connect() a eșuat (111: Conexiune refuzată) în timpul conectării la amonte

Am aceasta configuratie:

versiunea: "3"
Servicii:

nginx:
  container_name: nginx
  imagine: „${NGINX_IMAGE}”
  build: build/nginx
  reporniți: întotdeauna
  fisier_env: .env
  porturi:
    # - „8000:443”
    - „80:80”
    - „443:443”
  volume:
    - „${APP_HOST_DIR}/public:/var/www/app/public:ro”
    - „${APP_HOST_LETSENCRYPT}:${APP_CONTAINER_LETSENCRYPT}”
    - „${APP_HOST_NGINX_CONF}:${APP_CONTAINER_NGINX_CONF}”
  volume_de la:
    - aplicație
  retele:
    - central_mr
  depinde de:
    - aplicație

aplicatie:
  container_name: app
  imagine: „${APP_IMAGE}”
  reporniți: întotdeauna
  build: build/app
  fisier_env: .env
  retele:
    - central_mr
  volume:
    - „${APP_HOST_DIR}:${APP_CONTAINER_DIR}”


  retele:
    central_mr:

.env

# PROD
MODE=prod

# IMAGINI
NGINX_IMAGE=mr/nginx:prod
MARIADB_VERSION=cele mai recente
APP_IMAGE=mr/app:prod

# APP
APP_HOST_DIR=./app
APP_CONTAINER_DIR=/var/www/app/

# MARIADB
MARIADB_DATA_DIR=/var/lib/mysql
MARIADB_LOG_DIR=/var/logs/mysql
SQL_INIT=./build/database/prod

MYSQL_DATABASE=aplicație
MYSQL_USER=aplicație
MYSQL_PASSWORD=parolă
MYSQL_ROOT_PASSWORD=parolă

APP_HOST_NGINX_CONF=./volume/etc/nginx/prod/default.conf
APP_CONTAINER_NGINX_CONF=/etc/nginx/conf.d/default.conf

# NGINX
APP_HOST_NGINX_CONF=./volume/etc/nginx/prod/default.conf
APP_CONTAINER_NGINX_CONF=/etc/nginx/conf.d/default.conf

# SSL
APP_HOST_LETSENCRYPT=/etc/letsencrypt/
APP_CONTAINER_LETSENCRYPT=/etc/letsencrypt/

implicit.conf

Server {

asculta [::]:443 ssl; 
asculta 443 ssl; 
ssl_certificate /etc/letsencrypt/live/mywebsite.com/fullchain.pem; 
ssl_certificate_key /etc/letsencrypt/live/mywebsite.com/privkey.pem; 
includ /etc/letsencrypt/options-ssl-nginx.conf; 
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; 
root /var/www/app/public/;
index index.php;
nume_server site-ul meu.com; 


locație ~ \.php$ {
    try_files $uri =404;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    setați aplicația $upstream:9000;
    fastcgi_pass $upstream; 
    fastcgi_index index.php;
}
}

fd

Puncte:0
drapel gr

Do you really need to specify your upstream name using the variable? This trick usually used when your backend can be unavailable or down when the nginx container starts; some more details can be found in this article. If it isn't your case, you can use the container name directly:

fastcgi_pass app:9000;

If it is really your case after all, you can define a resolver using internal docker-compose container-to-IP resolving system:

resolver 127.0.0.11;

or better move your upstream declaration to the separate upstream block and go on without and additional resolver needed to be defined:

upstream webapp {
    server app:9000;
}
server {
    ...
    location ~ \.php$ {
        try_files $uri =404;
        set $upstream webapp;
        fastcgi_pass $upstream; 
    }
}

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.