[::]: 80 ত্রুটির জন্য এনগিনেক্সের সদৃশ শোনার বিকল্পগুলি


12

আমি যখন কমান্ড আমার কনফিগারেশন পরীক্ষা করার জন্য চালানো আমি বলার অপেক্ষা রাখে একাধিক প্রতিলিপি আছে কোনো ত্রুটির সম্মুখীন হয়েছেন [::]:80। এর আগে ডুপ্লিকেট একাধিক ডিফল্ট সার্ভার নিয়ে আমার সমস্যা ছিল।

যখন আমি একাধিক ডিফল্ট সার্ভারগুলির সাথে সমস্যাটি পেলাম তখন আমার ফাইলটি এ জাতীয় দেখাচ্ছে

server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;

root /usr/share/nginx/html;
index index.php index.html index.htm;

server_name munki;

error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
    root /usr/share/nginx/html;
    }

location /report {
    try_files $uri $uri/ =404;
    }

location ~ \.php$ {
    try_files $uri =404;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
    }

location /munki_repo/ {
    alias /usr/local/munki_repo/;
    autoindex off;
    auth_basic "Restricted";
    auth_basic_user_file /etc/nginx/.htpasswd;
    }
}

এই সমস্যাটি সমাধান করতে, আমি কনফিগারেশনটি এতে পরিবর্তন করেছি:

server {
listen 80;
listen [::]:80 ipv6only=on;

root /usr/share/nginx/html;
index index.php index.html index.htm;

server_name munki;

error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
    root /usr/share/nginx/html;
    }

location /report {
    try_files $uri $uri/ =404;
    }

location ~ \.php$ {
    try_files $uri =404;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
    }

location /munki_repo/ {
    alias /usr/local/munki_repo/;
    autoindex off;
    auth_basic "Restricted";
    auth_basic_user_file /etc/nginx/.htpasswd;
    }
}

পরিবর্তনের পরে আমি "[::]: 80" ত্রুটির জন্য সদৃশ বিকল্পগুলি পেতে শুরু করি। আমি এর সাথে কী ভুল করছি তা নিশ্চিত নই। এই প্রথম আমার সাথে Nginx কাজ। কোন ধারণা কি হতে পারে?


ত্রুটি বার্তা পোস্ট করুন ( nginx -tআউটপুট)। আপনি কোন এনগিনেক্স সংস্করণটি চালাচ্ছেন? ipv6only=onআর প্রয়োজন হবে না। আমার সার্ভার ব্লকে listen 80;listen [::]:80;এটি আছে : এবং এটি ঠিক আছে runs আপনার কি অন্য কোনও সার্ভার ব্লক রয়েছে?
14-18 এ সিমলিভ করুন

এটি আপনাকে পরামর্শ দেওয়ার পরামর্শ দিয়েছে! এটা কখনই ভাবিনি।
ztmcoder

উত্তর:


27

আমি আমার আগের মন্তব্যটির বাইরে একটি উত্তর তৈরি করছি।

দয়া করে ত্রুটি বার্তা ( nginx -tআউটপুট) পোস্ট করুন কারণ এতে কিছু দরকারী অন্তর্দৃষ্টি থাকতে পারে।

আপনি কোন এনগিনেক্স সংস্করণটি চালাচ্ছেন? বিকল্পের ipv6only=onআর প্রয়োজন হবে না এবং বিপরীতে সম্ভাব্য সমস্যা তৈরি করুন। আমার সার্ভার ব্লকে এটি আমার আছে এবং এটি দুর্দান্ত চলছে:

listen 80;
listen [::]:80;

আপনার কি অন্য কোনও সার্ভার ব্লক রয়েছে যা আপনি পোস্ট করেন নি যা সম্ভবত প্রত্যেকের সাথে দ্বন্দ্ব হতে পারে?


ব্যাখ্যা: আসুন বর্তমান (1.13) nginx ডকুমেন্টেশন পড়ুন :

ipv6only=on|off
এই পরামিতিটি (0.7.42) নির্ধারণ করে ( IPV6_V6ONLYসকেট বিকল্পের মাধ্যমে ) ওয়াইল্ডকার্ড ঠিকানায় আইপিভি 6 সকেট [::] কেবল আইপিভি 6 সংযোগ গ্রহণ করবে বা আইপিভি 6 এবং আইপিভি 4 সংযোগ গ্রহণ করবে কিনা তা নির্ধারণ করে । এই পরামিতিটি ডিফল্ট হিসাবে চালু করা হয়। এটি কেবল একবার শুরুতে সেট করা যেতে পারে।

এই প্যারামিটারটি ডিফল্টরূপে চালু করা মানে আপনার ব্যবহার করা উচিত নয়ipv6only=on। এটি কোনও ভাল করে না এবং সম্ভাব্য সমস্যা তৈরি করতে পারে (পরবর্তী পয়েন্টটি দেখুন)।

এটা শুধুমাত্র একবার নির্ধারণ করা যাবে মানে আপনি এটি একাধিকবার আছে যদি যে কোন জায়গায় আপনার কনফিগারেশন (যেমন বিভিন্ন সার্ভার ব্লক হিসেবে), এটি একটি ত্রুটির নিক্ষেপ করা হবে:nginx: [emerg] duplicate listen options for [::]:80

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