সংযোগ () ব্যর্থ হয়েছে (111: সংযোগ অস্বীকার করা হয়েছে) উজানের সাথে সংযোগ করার সময়


85

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/*;
}

1
'সংযোগ প্রত্যাখ্যান' এর অর্থ ব্যাকএন্ড 9000 পোর্টটি শোনে না বা এর সারিটি পূরণ করা হচ্ছে না। এই সমস্যাটি ব্যাকএন্ড itsef এর সাথে সম্পর্কিত। আপনি কি লোকালহোস্ট 9000 টেলনেট করতে সক্ষম? আপনার ব্যাকএন্ড এবং পিএইচপি লগগুলিও পরীক্ষা করা উচিত।
অ্যান্ড্রু

আমার পোস্ট আপডেট। আমি লোকালহোস্ট 9000 তে টেলনেট করতে পারিনি
ম্যাকম্যাক

আমি আপনাকে যে একই ত্রুটির মুখোমুখি হয়েছিলাম, এখানে লিঙ্কের বিবরণ প্রবেশ করানো আপনাকে সহায়তা করতে পারে
Tripathi29

উত্তর:


43

দেখে মনে হচ্ছে আপনি এনগিনেক্সের ব্যাকএন্ড শুরু এবং কনফিগার করেন নি। শুরু 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;
    }
}

3
ধন্যবাদ মানুষ, এটি কাজ করে, আমি php-fpmইনস্টল করি নি । চিয়ার্স।
ম্যাকম্যাক

6
আপনি খাঁটি প্রতিভা আমি এটি সম্পর্কে 1.0000000 মিলিয়ন গাইডকে বিশ্বাস করতে পারি না, নোবিডি উল্লেখ করেছে যে ব্যাকএন্ড সক্ষম করতে আপনাকে অবশ্যই "শ্রুত 127.0.0.1" লাগাতে হবে। তুমি আমাকে দুঃস্বপ্ন থেকে বাঁচিয়েছো !!!

আপনি ইউনিক্স সকেট ব্যবহার বিবেচনা করা উচিত। এটির সাথে দেখুন netstat -lএবং দেখুন /var/run/php5-fpm.sock(এর জন্য কনফিগারটি সাধারণত fastcgi_pass unix:<socket>
জোহানেস

2
আপনি হবে 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
জোহানেসএম

পিএইচপি 7.2 এর সাথে একই সমস্যা রয়েছে। Httpd প্রসঙ্গে ফাইল যুক্ত করার অর্থ কী? এটি / etc / nginx / সাইটগুলি উপলব্ধ / ফোল্ডারে কোনও অতিরিক্ত কনফ ফাইল হবে বা কী?
পিটারকাএ

47

এই উত্তরটি কেবল তাদের পক্ষে যারা এই জাতীয় ত্রুটি পান:

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

আইপি ব্যবহার করার জন্য আপনার এনগিনেক্স কনফিগারেশনটি পুনরায় লিখুন, ডিএনএস নয়। উদাহরণস্বরূপ, 127.0.0.1পরিবর্তে localhost, বা / ইত্যাদি / হোস্টগুলি থেকে ipv6 উরফ সরান।


3
আপনি আমার সঠিক দিকে নির্দেশ করেছেন! আমি যদিও ঠিক ব্যবহার listen 80করা ভাল ছিল (এবং এটির সাথে প্রচুর উদাহরণ রয়েছে) তবে আমি ভাবিনি যে এটি আইপিভি 4 ( 127.0.0.1) এবং আইপিভি 6 ( [::1]) ঠিকানা উভয়ই বোঝায় ।
glarrain

5
আমি থেকে পরিবর্তন করতে হয়েছে listen 80 default_serverথেকে listen 0.0.0.0:80
givanse

এটি কেন সাহায্য করবে তা আপনি উল্লেখ করতে পারেন?
কায়সার

1
বেশিরভাগ লিনাক্স ডিস্ট্রিবিউশনগুলিতে নেটওয়াকিংয়ে আইপিভি 6 সক্ষম হয়েছে, তবে সমস্ত প্যাকেট আইপিভি 6 ব্যবহারের জন্য কনফিগার করা হয়নি। আমার মতে, এনজিএনএক্স যখন প্রবাহের সাথে সংযোগ শুরু করে, সিস্টেম সমাধানকারী প্রথমে আইপিভি 6 অ্যাড্রেস ফেরত দেয়। পিএইচপি-এফপিএম (সেন্টোস x.x) এর বাক্স থেকে এমন কোনও সেটিংস ছিল না। এবং বেশিরভাগ গাইডগুলি আইপিভি 4 সংস্করণে সমস্ত ব্যাখ্যা করে ipv6 ফিউচারগুলি ভুলে যা অক্ষম বা ব্যবহার করা উচিত।
Quake1TF

হুঁ, তাই [:: 1] হ'ল লোকাল হোস্ট আইপিভি 6 ঠিকানা! :) ধন্যবাদ!
লেচআপ

4

এটির মতো ত্রুটিও পেয়েছে। সমস্যাটি ছিল আমার বিমূর্ত ব্যাকএন্ড দুটি সার্ভারের উল্লেখ করে। 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;
    }
}

1

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

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

আমার সমাধান:

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

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


0

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


-1

ঠিক আজই আমি এই সমস্যায় পড়েছি এবং আমার জন্য এটি উচ্চ লোডের সময়কালে কম স্মৃতির সমস্যা ছিল। সুতরাং উদাহরণস্বরূপ সমতলকরণ সমস্যাটি স্থির করে দিয়েছে।


-4

আমার একই সমস্যা ছিল এবং শ্রবণ বিবৃতি যুক্ত করা উচিত

listen 127.0.0.1;

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

আকর্ষণীয়ভাবে যথেষ্ট আমার কাছে অন্যান্য সার্ভার ব্লক রয়েছে যা এগুলি ছাড়াই বেশ আনন্দের সাথে চলছে!


3
এটি উত্তর এবং ইতিমধ্যে তিন বছর আগে গৃহীত হয়েছে।
সোভেন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.