我收到nginx的錯誤:
我收到nginx的錯誤。
[emerg]在/etc/nginx/conf.d/default.conf:53的上游 "varnish "中沒有找到主機
。
varnish日志中的錯誤
后端主機'"web"'無法決議為一個IP地址。 名稱決議暫時失敗 (如果這個錯誤資訊是胡言亂語,請原諒。) ('/etc/varnish/default.vcl' Line 9 Pos 13) .host = "web";
它似乎有一個依賴性回圈,使得docker無法同時啟動varnish和nginx。
有人對此有什么想法嗎?
檔案docker-compose.yml
web:
image: magento/magento-cloud-docker-nginx:latest
埠:
- 80:80
- 443:443。
- 8080: 8080
鏈接:。
- fpm
- fpm_xdebug
- db
volumes_from:
- 應用資料
卷宗:
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf
- ./nginx/ssl:/etc/nginx/ssl
env_file:。
- ./global.env
varnish:。
build: ./varnish
depends_on:
- 網路
鏈接:
- 網路
港口:
- 6082: 6082
- 6081:6081
卷軸:
- ./varnish/etc/varnish/default.vcl:/etc/varnish/default.vcl
- ./varnish/etc/default/varnish:/etc/default/varnish
我的配置default.conf
upstream fastcgi_backend {
# use tcp connection
服務器 fpm:9000。
}
服務器 {
listen 80;
server_name local.defaultsite.com;
return 301 https:/$server_name$request_uri。
}
服務器 {
listen 8080;
server_name local.defaultsite.com;
# set $MAGE_ROOT /app;
設定$MAGE_ROOT /home/webapps/public_html。
# include /app/nginx.conf.pleas;
include /home/webapps/public_html/nginx.conf.sample。
}
服務器 {
listen 443 ssl http2 default_server;
listen [:]:443ssl http2 default_server;
ssl_certificate /etc/nginx/ssl/cert.pem。
ssl_certificate_key /etc/nginx/ssl/key.pem。
設定 $MAGE_ROOT /home/webapps/public_html。
設定 $MAGE_DEBUG_SHOW_ARGS 0;
設定 $my_fastcgi_pass "fastcgi_backend";
if ($cookie_XDEBUG_SESSION) {
設定$my_fastcgi_pass "fastcgi_backend_xdebug"。
}
server_name local.defaultsite.com;
位置 / {
proxy_pass http://varnish:6081。
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For
$proxy_add_x_forwarded_for。
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Port 443;
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
fastcgi_buffer_size 32k;
fastcgi_buffers 4 32k;
}
在varnish default.vcl中
backend default {
.host = "web"/span>;
.port = "8080";
.first_byte_timeout = 600s。
uj5u.com熱心網友回復:
問題開始于這樣一個事實:你的Nginx配置對FastCGI使用了以下的上游配置:
upstream fastcgi_backend {
# use tcp connection
服務器 fpm:9000;
}
主機名是fpm,這可能是指一個PHP-FPM Docker容器。這個容器似乎不是你docker-compose.yml設定的一部分。
很有可能你的web容器沒有從中恢復過來,并且宕機了(請看docker-compose輸出日志)。
Varnish依賴于web主機名來代理其資料,但由于它不再決議,Varnish也拋出了一個錯誤。
看看https://hub.docker.com/_/php?tab=tags&page=1&name=fpm:它列出了所有可用的基于 FPM 的官方 PHP 影像。你可以選擇php:7.4-fpm.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/320588.html
標籤:
上一篇:從產品集合中獲取產品名稱和價格
下一篇:如何在資料透視表上應用過濾器?
