Saya mengalami 502 Gateway
kesalahan saat mengakses file PHP di direktori ( http://example.com/dev/index.php
). Log hanya mengatakan ini:
2011/09/30 23:47:54 [error] 31160#0: *35 connect() failed (111: Connection refused) while connecting to upstream, client: xx.xx.xx.xx, server: domain.com, request: "GET /dev/ HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "domain.com"
Saya belum pernah mengalami ini sebelumnya. Apa solusi untuk jenis 502 Gateway
kesalahan ini?
Ini adalah nginx.conf
:
user www-data;
worker_processes 4;
pid /var/run/nginx.pid;
events {
worker_connections 768;
# multi_accept on;
}
http {
##
# Basic Settings
##
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# server_tokens off;
# server_names_hash_bucket_size 64;
# server_name_in_redirect off;
include /etc/nginx/mime.types;
default_type application/octet-stream;
##
# Logging Settings
##
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
##
# Gzip Settings
##
gzip on;
gzip_disable "msie6";
# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
##
# Virtual Host Configs
##
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
Jawaban:
Sepertinya Anda belum memulai dan mengonfigurasi backend untuk Nginx. Mulai
php-fpm
dan tambahkan berikut ini kenginx.conf
, dalamhttp
konteks:sumber
php-fpm
menginstal. Tepuk tangan.netstat -l
dan lihat untuk/var/run/php5-fpm.sock
(konfigurasi untuk ini biasanya di /etc/php5/fpm/pool.d/www.conf.fastcgi_pass unix:<socket>
listen = /var/run/php5-fpm.sock
di dalam/etc/php5/fpm/pool.d/www.conf
. tetapi Anda akan menginginkanlisten = 9000
dan;listen = /var/run/php5-fpm.sock
. jika kamu seperti saya. (Atau kalau tidak, Anda dapat mendengarkan petunjuk bijaksana oleh JohannesM. yang saya bayangkan akan meninggalkan Anda dengan sesuatu sepertifastcgi_pass unix:/var/run/php5-fpm.sock;
di suatu tempat di Andanginx.conf
)Jawaban ini hanya untuk mereka yang mendapatkan kesalahan seperti ini:
Tulis ulang konfigurasi nginx Anda untuk menggunakan ip, bukan dns. Misalnya,
127.0.0.1
alih-alihlocalhost
, atau menghapus alias ipv6 dari / etc / hosts.sumber
listen 80
baik-baik saja (dan ada banyak contoh di luar sana dengan itu) tapi saya tidak berpikir yang menyiratkan alamat IPv4 (127.0.0.1
) dan IPv6 ([::1]
).listen 80 default_server
menjadilisten 0.0.0.0:80
.Mendapat kesalahan seperti ini juga. Masalahnya adalah backend abstrak saya merujuk dua server.
php-fpm
hanya daftar ke soket ...sumber
Punya masalah yang sama dengan permintaan proksi ke server Node mendengarkan pada port 5000. Permintaan akan menghasilkan
200 OK
tetapi kadang-kadang502 Bad Gateway
secara acak. NGINX menunjukkan kesalahan:Solusi saya:
server.listen(5000, 'localhost');
listen [::]:80;
ataulisten [::]:443 ssl default_server;
).proxy_pass http://127.0.0.1:5000
(tidakproxy_pass http://localhost:5000
).Semoga ini bisa membantu seseorang.
sumber
Dalam kasus saya kesalahan adalah lokasi yang buruk untuk file error_log untuk layanan php5.6-fpm dan dengan demikian layanan php-fpm gagal untuk memulai dan nginx tidak dapat terhubung ke sana . Anda dapat menemukannya di
/etc/php/5.6/fpm/php.ini
(Anda dapat mengganti 5.6 dengan versi yang Anda jalankan).sumber
Baru hari ini saya mengalami masalah ini dan bagi saya itu adalah masalah memori rendah selama periode beban tinggi. Jadi naik level tipe instance memperbaiki masalah.
sumber
Saya memiliki masalah yang sama dan menambahkan pernyataan mendengarkan
bekerja untukku.
Yang cukup menarik, saya memiliki blok server lain yang berjalan cukup bahagia tanpa ini!
sumber