Điểm:0

Docker + Symfony + Nginx + PHP 8.1 bad gateway cấu hình php cho Nginx

lá cờ cn

Tôi đang cố truy cập ứng dụng symfony của mình thông qua thiết lập soạn thảo docker

Tôi gặp sự cố với nginx mặc định.conf Khi cố gắng truy cập ứng dụng, tôi nhận được cổng xấu

nhật ký docker hiển thị lỗi:

không có trình phân giải nào được xác định để giải quyết ứng dụng, ứng dụng khách: 193.32.126.216

vì vậy tôi đã cố gắng đặt 127.0.0.1:9000 thay vì ứng dụng:9000 và tôi nhận được một lỗi mới:

connect() không thành công (111: Kết nối bị từ chối) trong khi kết nối với thượng nguồn

Tôi có cấu hình này:

phiên bản: "3"
dịch vụ:

nginx:
  container_name: nginx
  hình ảnh: "${NGINX_IMAGE}"
  xây dựng: xây dựng/nginx
  khởi động lại: luôn luôn
  env_file: .env
  cổng:
    # - "8000:443"
    - "80:80"
    - "443:443"
  khối lượng:
    - "${APP_HOST_DIR}/public:/var/www/app/public:ro"
    - "${APP_HOST_LETSENCRYPT}:${APP_CONTAINER_LETSENCRYPT}"
    - "${APP_HOST_NGINX_CONF}:${APP_CONTAINER_NGINX_CONF}"
  tập_từ:
    - ứng dụng
  mạng:
    - trung_mr
  phụ thuộc:
    - ứng dụng

ứng dụng:
  container_name: ứng dụng
  hình ảnh: "${APP_IMAGE}"
  khởi động lại: luôn luôn
  xây dựng: xây dựng/ứng dụng
  env_file: .env
  mạng:
    - trung_mr
  khối lượng:
    - "${APP_HOST_DIR}:${APP_CONTAINER_DIR}"


  mạng:
    trung_mr:

.env

# SẢN PHẨM
MODE=sản phẩm

# HÌNH ẢNH
NGINX_IMAGE=mr/nginx:prod
MARIADB_VERSION=mới nhất
APP_IMAGE=mr/app:prod

# ỨNG DỤNG
APP_HOST_DIR=./ứng dụng
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=ứng dụng
MYSQL_USER=ứng dụng
MYSQL_PASSWORD=mật khẩu
MYSQL_ROOT_PASSWORD=mật khẩu

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/

mặc định.conf

người phục vụ {

nghe [::]:443 ssl; 
nghe 443 ssl; 
ssl_certificate /etc/letsencrypt/live/mywebsite.com/fullchain.pem; 
ssl_certificate_key /etc/letsencrypt/live/mywebsite.com/privkey.pem; 
bao gồm /etc/letsencrypt/options-ssl-nginx.conf; 
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; 
gốc /var/www/app/public/;
chỉ số index.php;
server_name mywebsite.com; 


vị trí ~ \.php$ {
    try_files $uri =404;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    đặt $upstream app:9000;
    fastcgi_pass $upstream; 
    fastcgi_index index.php;
}
}

fd

Điểm:0
lá cờ 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; 
    }
}

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.