প্রশ্ন সংযোগ () ব্যর্থ হয়েছে (111: সংযোগ প্রত্যাখ্যান) আপস্ট্রিম সংযোগ করার সময়


আমি অভিজ্ঞতা করছি 502 Gateway একটি ডিরেক্টরি একটি পিএইচপি ফাইল অ্যাক্সেস করার সময় ত্রুটি (http://example.com/dev/index.php)। লগ সহজভাবে এই বলে:

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"

আমি আগে এই অভিজ্ঞতা করেছি। এই ধরনের জন্য সমাধান কি 502 Gateway গোমরাহী ছাড়া?

এই হল 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/*;
}


#mail {
#   # See sample authentication script at:
#   # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
# 
#   # auth_http localhost/auth.php;
#   # pop3_capabilities "TOP" "USER";
#   # imap_capabilities "IMAP4rev1" "UIDPLUS";
# 
#   server {
#       listen     localhost:110;
#       protocol   pop3;
#       proxy      on;
#   }
# 
#   server {
#       listen     localhost:143;
#       protocol   imap;
#       proxy      on;
#   }
#}

67
2017-09-30 21:59


উত্স


'সংযোগ প্রত্যাখ্যান' এর অর্থ হল ব্যাক-পোর্টটি 9000 পোর্টের কথা শোনে না বা তার সারিটি ভরা হয় না। এই সমস্যাটি ব্যাকআপ আইসেফ সম্পর্কিত। আপনি কি টেলনেটকে 9 4000 টেলনেট করতে পারবেন? আপনি আপনার ব্যাকএন্ড এবং পিএইচপি লগ পরীক্ষা করা উচিত। - Andrew
আমার পোস্ট আপডেট। আমি স্থানীয় হোস্ট 9000 তে টেলনেট করতে পারিনি। - MacMac
একই সমস্যা আমি আপনাকে সম্মুখীন ছিল, এই এখানে লিঙ্ক বিবরণ লিখুন সাহায্য করতে পারি - Tripathi29


উত্তর:


এটি আপনি Nginx জন্য ব্যাকএন্ড শুরু এবং কনফিগার করা হয়নি মত শোনাচ্ছে। শুরু php-fpm এবং নিম্নলিখিত যোগ করুন nginx.conf, মধ্যে http প্রসঙ্গ:

server {
    listen 127.0.0.1;
    server_name localhost;

    error_log /var/log/nginx/localhost.error_log info;

    root /var/www/localhost/htdocs;

    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        include /etc/nginx/conf.d/*.conf;
        include /etc/nginx/sites-enabled/*;

        fastcgi_intercept_errors        on;
        error_page 404 /error/404.php;
    }
}

35
2017-10-01 11:03



ধন্যবাদ মানুষ, এটা কাজ, আমি ছিল না php-fpm ইনস্টল করা নেই। চিয়ার্স। - MacMac
আপনি বিশুদ্ধ প্রতিভাশালী। আমি এই সম্পর্কে পড়তে 1.0000000 মিলিয়ন গাইড বিশ্বাস করতে পারছি না, NOBODY উল্লেখ করে যে আপনাকে ব্যাকএন্ড সক্ষম করতে একটি "শুনুন 127.0.0.1" লাগাতে হবে। আপনি আমাকে একটি দুঃস্বপ্ন থেকে রক্ষা !!!
আপনি ইউনিক্স সকেট ব্যবহার বিবেচনা করা উচিত। সঙ্গে এটি দেখুন netstat -l এবং জন্য দেখুন /var/run/php5-fpm.sock (এর জন্য কনফিগারেশন সাধারণত /etc/php5/fpm/pool.d/www.conf। fastcgi_pass unix:<socket> - JohannesM
তোমার থাকবে listen = /var/run/php5-fpm.sock ভিতরে /etc/php5/fpm/pool.d/www.conf। কিন্তু আপনি চান listen = 9000 এবং ;listen = /var/run/php5-fpm.sock। যদি তুমি আমার মতো হত (অথবা অন্যথায় আপনি জোহানেসান দ্বারা বিজ্ঞতার ইঙ্গিত শুনতে পারেন। যা আমি কল্পনা করতাম সেটি আপনাকে কিছু দিয়ে ছেড়ে দেবে fastcgi_pass unix:/var/run/php5-fpm.sock;কোথাও আপনার nginx.conf) - n611x007
পিএইচপি 7.2 সঙ্গে একই সমস্যা হচ্ছে। Httpd প্রেক্ষাপটে ফাইল যুক্ত করার অর্থ কী? এই / etc / nginx / সাইট-উপলব্ধ / ফোল্ডার বা একটি অতিরিক্ত conf ফাইল হবে কি? - PeterKA


এই উত্তরটি শুধুমাত্র তাদের জন্য একটি ত্রুটি পেতে যারা:

সংযোগ () ব্যর্থ হয়েছে (111: সংযোগ প্রত্যাখ্যান) আপস্ট্রিম, ক্লায়েন্ট সাথে সংযোগ করার সময় ....   fastcgi: // [:: 1]: 9000

IP ব্যবহার করতে আপনার nginx কনফিগারেশন পুনর্বিবেচনা করুন, dns না। এই ক্ষেত্রে, 127.0.0.1 পরিবর্তে localhost, অথবা / etc / হোস্ট থেকে ipv6 উপনাম মুছে ফেলুন।


38
2018-02-18 15:58



আপনি আমার সঠিক দিক নির্দেশ! আমি শুধু ব্যবহার যদিও listen 80 জরিমানা ছিল (এবং সেখানে তার সাথে অনেক উদাহরণ আছে) কিন্তু আমি মনে করি নি যে আইপিভি 4 উভয়ই বোঝায় (127.0.0.1) এবং আইপিভি 6 ([::1]) ঠিকানা। - glarrain
আমি থেকে পরিবর্তন ছিল listen 80 default_server থেকে listen 0.0.0.0:80। - givanse
আপনি নির্দেশ করতে পারেন কেন এই সাহায্য করা উচিত? - kaiser
নেটওয়ার্কিংয়ে বেশিরভাগ লিনাক্স ডিস্ট্রিবিউশনগুলির মধ্যে ipv6 সক্রিয় করা হয়েছে, তবে ipv6 ব্যবহারের জন্য কনফিগার করা সমস্ত প্যাকেট নেই। আমার মতে, যখন nginx আপস্ট্রিমের সাথে সংযোগ আরম্ভ করে, তখন সিস্টেম রিসোলার প্রথম আইপিভি 6 অ্যাড্রেস প্রদান করে। Php-fpm (Centos 7.x) বক্স থেকে কোন ধরনের সেটিংস ছিল। এবং অধিকাংশ গাইড ipv4 সংস্করণে ব্যাখ্যা করে, আইপিভি 6 ফিউচারগুলি ভুলে যাওয়া বা অক্ষম হওয়া উচিত। - Quake1TF
Whooah, তাই [:: 1] হল স্থানীয় হোস্ট IPv6 ঠিকানা! :) ধন্যবাদ! - lechup


এই মত ত্রুটি পেয়েছিলাম। সমস্যা দুটি সার্ভার রেফারেন্স আমার বিমূর্ত ব্যাকএন্ড ছিল। php-fpm শুধুমাত্র সকেট তালিকা ছিল ...

# Upstream to abstract backend connection(s) for php
upstream php {
        server unix:/var/run/php5-fpm.sock;
        #server 127.0.0.1:9000;
} 

server {
    [...]

    location ~ \.php$ {
            # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

            # With php5-fpm:
            fastcgi_pass php;
            fastcgi_index index.php;
            fastcgi_intercept_errors on;
            include fastcgi_params;
    }
}

3
2018-05-22 13:45





আমার ক্ষেত্রে ত্রুটিটি ত্রুটি-বিচ্যুতির জন্য php5.6-fpm পরিষেবা এবং এর জন্য ত্রুটি ফাইল ছিল php-fpm সেবা শুরু করতে ব্যর্থ হয়েছে এবং nginx এটি সংযোগ করতে সক্ষম ছিল না। আপনি এটি খুঁজে পেতে পারেন /etc/php/5.6/fpm/php.ini (আপনি যে সংস্করণটি চলছেন তার সাথে আপনি 5.6 টি প্রতিস্থাপন করতে পারেন)।


0
2017-07-30 15:03





একটি নোড সার্ভার পোর্ট 5000 শোনার proxied অনুরোধ একই সমস্যা ছিল। অনুরোধ সঙ্গে ফলাফল হবে 200 OK কিন্তু একদা 502 Bad Gateway এলোমেলোভাবে। NGINX ত্রুটি দেখিয়েছেন:

connect() failed (111: Connection refused) while connecting to upstream, client: ..., server: ...

আমার সমাধান:

  1. নোড HTTP সার্ভার সেট করুন শোনা কঠোরভাবে অন্তর্ভুক্ত করে ipv4 জন্য হোস্ট হিসাবে localhost: server.listen(5000, 'localhost'); 
  2. কোন ipv6 শুনতে নির্দেশ অপসারণlisten [::]:80; অথবা listen [::]:443 ssl default_server;)।
  3. আইপি ব্যবহার করার জন্য পরিবর্তিত অবস্থান ব্লক proxy_pass: proxy_pass http://127.0.0.1:5000 (না proxy_pass http://localhost:5000)।

এই কেউ সাহায্য করে আশা করি।


0
2017-07-05 10:05





আমি একই সমস্যা ছিল এবং শ্রবণ বিবৃতি যোগ

listen 127.0.0.1;

আমার জন্য কাজ।

আগ্রহজনকভাবে আমি এই ছাড়া বেশ খুশি চলমান অন্যান্য সার্ভার ব্লক আছে!


-3
2017-11-26 22:48



এই উত্তর দেওয়া হয়েছে এবং ইতিমধ্যে, তিন বছর আগে গৃহীত হয়েছে। - Sven♦