nginx: 8090 বন্দরটি আবদ্ধ করার অনুমতি নেই তবে এটি 80 এবং 8080 এ আবদ্ধ


37

আমি কিছু অদ্ভুত অনুমতি সম্পর্কিত আচরণের সাথে লড়াই করছি: যখন আমি 8080 বন্দর শোনার জন্য এনগিনেক্স কনফিগার করি তখন প্রত্যাশা অনুযায়ী সবকিছুই কাজ করে, তবে যখন আমি অন্য কোনও বন্দর ব্যবহার করি তখন আমার মতো কিছু পাওয়া যায়

2014/01/10 09:20:02 [emerg] 30181#0: bind() to 0.0.0.0:8090 failed (13: Permission denied)

মধ্যে /var/log/nginx/error.log

কোথায় তাকানোর আমার কোনও ধারণা নেই তাই কনফিগারেশনের কোন অংশগুলি আকর্ষণীয় হতে পারে তা আমি সত্যিই জানি না।

nginx.conf এ nginx nginx হিসাবে চালানোর জন্য কনফিগার করা হয়েছে:

user  nginx;

এছাড়াও ব্যবহারকারী nginx অন্য গ্রুপ 'গিট'

সাইট-কনফিগারেশনে আমি এইভাবে শোনার চেষ্টা করেছি:

server {
    listen 8090; #does not work
    #listen 8080; #works
    #listen 9090; #does not work
    #listen 9090 default; #does not work neighter
    #listen 80; #works!
    server_name <some IP>;
    ...
}

আমার কাছে আরও একটি শ্রোতা রয়েছে যা পোর্ট ৪৪৩ পরিবেশন করে।

আমি যখন অন্য কোনও পরিষেবা শুরু করি যেমন একটি SimpleHTTPServerপোর্ট ৮০৯০ ইত্যাদি ইত্যাদিতে নন-রুট সবকিছু ঠিকঠাক কাজ করে:

$ python -m SimpleHTTPServer 8090
Serving HTTP on 0.0.0.0 port 8090 ...
localhost.localdomain - - [10/Jan/2014 09:34:19] "GET / HTTP/1.1" 200 -

সাধারণভাবে অনুমতি অস্বীকার করার কারণগুলি কী কী হতে পারে?

সিস্টেমটি ফেডোরা 18 এনগনিক্স স্টক ফেডোরা 1.2.9


প্রথমত, আপনাকে ফেডোরার সমর্থিত সংস্করণে আপডেট করতে হবে। দ্বিতীয়ত, আবার চেষ্টা করুন। যদি এটি এখনও ব্যর্থ হয় তবে চেক করুন /var/log/audit/audit.log
মাইকেল হ্যাম্পটন

2
এটি খুব সহায়ক নয়। ফেডোরা 18 হয় এখনও সমর্থিত এবং এমনকি যদি এটা ছিল না লিনাক্স অনুমতি সিস্টেম তারপর থেকে সম্পূর্ণভাবে পরিবর্তন হয়নি।
Frans

হ্যাঁ ... আরও চার দিন
মাইকেল হ্যাম্পটন

একই পদ্ধতি পুনরাবৃত্তি করুন উত্তর stackoverflow.com/a/24830777/2443988
সুমিত Ramteke

উত্তর:


52

এটি সম্ভবত SELinux এর সাথে সম্পর্কিত হবে

semanage port -l | grep http_port_t
http_port_t                    tcp      80, 81, 443, 488, 8008, 8009, 8443, 9000

উপরের আউটপুট থেকে আপনি দেখতে পাচ্ছেন যে এসইএলিনাক্সের সাথে এনফোর্সিং মোডে HTTP কেবলমাত্র তালিকাভুক্ত পোর্টগুলিতে আবদ্ধ হওয়ার অনুমতি রয়েছে। সমাধানটি হ'ল পোর্টগুলিকে তালিকার সাথে যুক্ত করতে চান add

semanage port -a -t http_port_t  -p tcp 8090

তালিকায় 8090 পোর্ট যুক্ত করবে।


1
এটা হয়েছে, ধন্যবাদ! তবে এত কম তথ্য কেন? আমার ধারণা অন্যান্য লোকেরাও সেলোইনাক্সের সাথে ফেডোরা ব্যবহার করে ..
ফ্রান্স

1
@ ফ্রান্স: প্রচুর তথ্য রয়েছে, আপনি এটি সম্পর্কে কীভাবে অ্যাক্সেস এবং ব্যবহার করবেন সে সম্পর্কে আপনি ঠিক অবগত নন। আপনার যদি প্রয়োগ বা অনুমোদন মোডে সেলইক্স থাকে তবে সমস্ত অস্বীকারগুলি /var/log/audit.log এ লগ হয়। এমন সরঞ্জামগুলি উপলব্ধ রয়েছে যা আপনাকে তথ্য এবং সেলইনাক্স নীতি ফিল্টার করতে, বুঝতে এবং পরিচালনা করতে দেয় - ফেডোরা সেলিয়াক্স পৃষ্ঠাগুলি এবং অ্যাসারচ, অডিট 2, অডিট 2 নিবন্ধের ম্যান্যাপগুলি দেখুন।
ব্যবহারকারী 9517 GoFundMonica

যদি আপনি পান তবে semanage: command not foundএটি দিয়ে ইনস্টল করতে পারেন yum install policycoreutils-python
mwfearnley

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