(১৩: অনুমতি অস্বীকার করা হয়েছে) উজানের সাথে সংযোগ করার সময়: [nginx]


296

আমি জাঙ্গো প্রকল্পটি এনগিনেক্স এবং গুনিকর্ন দিয়ে কনফিগার করার কাজ করছি।

আমি যখন gunicorn mysite.wsgi:application --bind=127.0.0.1:8001এনগিনেক্স সার্ভারে আমার পোর্টটি অ্যাক্সেস করছি তখন আমার ত্রুটি লগ ফাইলে নিম্নলিখিত ত্রুটিটি পাচ্ছি;

2014/05/30 11:59:42 [সমালোচক] 4075 # 0: * 6 সংযোগ () থেকে 127.0.0.1:8001 ব্যর্থ হয়েছে (13: অনুমতি অস্বীকার করা হয়েছে) উজানের সাথে সংযোগ করার সময়, ক্লায়েন্ট: 127.0.0.1, সার্ভার: লোকালহোস্ট, অনুরোধ: "জিইটি / এইচটিটিপি / ১.১", আপস্ট্রিম "http://127.0.0.1:8001/":, হোস্ট: "লোকালহোস্ট: 8080"

নীচে আমার nginx.confফাইলের বিষয়বস্তু রয়েছে ;

server {
    listen 8080;
    server_name localhost;
    access_log  /var/log/nginx/example.log;
    error_log /var/log/nginx/example.error.log;

    location / {
        proxy_pass http://127.0.0.1:8001;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $http_host;
    }
}

এইচটিএমএল পৃষ্ঠাতে আমি পাচ্ছি 502 Bad Gateway

আমি কি ভুল করছি?

উত্তর:


680

ফেডোরা 20, এনগিনেক্স, নোড.জেএস এবং ঘোস্ট (ব্লগ) কে কাজ করার জন্য আমার একই রকম সমস্যা ছিল। দেখা যাচ্ছে যে আমার সমস্যাটি সেলইনুকসের কারণে হয়েছিল ।

এই সমস্যার সমাধান করা উচিত:

setsebool -P httpd_can_network_connect 1

বিস্তারিত

আমি সেলইনক্স লগগুলিতে ত্রুটিগুলি পরীক্ষা করেছি:

sudo cat /var/log/audit/audit.log | grep nginx | grep denied

এবং দেখা গেছে যে নিম্নলিখিত কমান্ডগুলি চালানো আমার সমস্যাটিকে স্থির করেছে:

sudo cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M mynginx
sudo semodule -i mynginx.pp

তথ্যসূত্র:

http://blog.frag-gustav.de/2013/07/21/nginx-selinux-me-mad/

https://wiki.gentoo.org/wiki/SELinux/Tutorials/Where_to_find_SELinux_permission_denial_details

http://wiki.gentoo.org/wiki/SELinux/Tutorials/Managing_network_port_labels

http://www.linuxproblems.org/wiki/Selinux


22
ধন্যবাদ, যে আমার সমস্যা খুব সুনির্দিষ্ট করা থাকে, আমি সেন্টওএস 7. উপর আছি
জাহান

21
ধন্যবাদ। আমি প্রথম yum install policycoreutils-pythonপেতে প্রয়োজন ছিল audit2allow। তথ্যসূত্র: Centos.org/forums/viewtopic.php?t=5012
gross.jonas

নোড সার্ভার ব্যবহার করে এটি আমার পক্ষে অনেক অনেক ধন্যবাদ। (
রেডহাট

এখানেও দেখুন । আমার ক্ষেত্রে আমাকে তার গ্রুপের সাথে এনগিনেক্স যুক্ত করতে হয়েছিল যার হোম ডিরেক্টরিতে wwwroot সঞ্চিত ছিল।

1
ফেডোরা 23-তে ইনস্টল policycoreutils-pythonকরে কমান্ডটি সরবরাহ করা হয়নি audit2allow। কিছু গবেষণা করার পরে আমি আপনার ডিভেল প্যাকেজ ইনস্টল করা উচিত yum install policycoreutils-devel। তথ্যসূত্র: danwalsh.livej पत्रकार.com
জোসেফ এন।

182

আমিও এই সমস্যায় পড়েছি। আরেকটি সমাধান হ'ল httpd নেটওয়ার্ক সংযোগের জন্য সেলিনাক্স বুলিয়ান মান টগল করা on(Nginx httpd লেবেল ব্যবহার করে)।

setsebool httpd_can_network_connect on

পরিবর্তনটি অবিচল করতে -P পতাকা ব্যবহার করুন।

setsebool httpd_can_network_connect on -P

আপনি httpd ব্যবহারের জন্য উপলভ্য সমস্ত সেলইনাক্স বুলিয়ানের একটি তালিকা দেখতে পাবেন

getsebool -a | grep httpd

1
ধন্যবাদ, ধন্যবাদ। আমি CentOS 6.5 -> 6.7 থেকে আপডেট করেছি এবং আপডেটের সময় এটি অবশ্যই মানটিকে বন্ধ করে দিতে হবে, কারণ এটি আপডেটের আগে ঠিকঠাক কাজ করছিল। সাধারণ ফিক্স।
মাইক পুরসেল

16

সেন্টোস on-তেও একইরকম সমস্যা হয়েছিল আমি যখন সোরিনের দ্বারা নির্ধারিত সমাধানটি প্রয়োগ করার চেষ্টা করেছি, তখন আমি চক্রের মধ্যে চলতে শুরু করি। প্রথমে আমার অনুমতি ছিল {লেখার} অস্বীকার। তারপরে আমি যখন সমাধান করেছি যে আমার অনুমতি রয়েছে {কানেক্টো} অস্বীকার। তারপরে আবার অনুমতিতে ফিরে লেখার} অস্বীকার।

পতাকাগুলি ব্যবহার করে getsebool -a | grep httpdএবং তাদের টগল করার উপরের @ সিড উত্তরের অনুসরণ করে আমি দেখতে পেলাম যে এইচডিডি_ক্যান_নেটওয়ার্ক_ সংযোগটি বন্ধ রয়েছে। অনুমতি অস্বীকারের ফলে লেখার অনুমতি এবং অনুমতি অস্বীকারের ফলে http_anon_writ বন্ধ ছিল {কানেক্টো}

type=AVC msg=audit(1501830505.174:799183): avc:  
denied  { write } for  pid=12144 comm="nginx" name="myroject.sock" 
dev="dm-2" ino=134718735 scontext=system_u:system_r:httpd_t:s0 
tcontext=system_u:object_r:default_t:s0 tclass=sock_file

Sudo cat /var/log/audit/audit.log | ব্যবহার করে প্রাপ্ত grep nginx | উপরে বর্ণিত হিসাবে গ্রেপ অস্বীকার করেছে।

তাই আমি একবারে তাদের সমাধান করেছি, একবারে পতাকাগুলি টগল করে।

setsebool httpd_can_network_connect on -P

তারপরে উপরের @ সোরিন এবং @ জোসেফ দ্বারা নির্দিষ্ট করা কমান্ডগুলি চালানো

sudo cat /var/log/audit/audit.log | grep nginx | grep denied | 
audit2allow -M mynginx
sudo semodule -i mynginx.pp

মূলত আপনি সেটসেবুলে সেট করা অনুমতিগুলি যাচাই করতে পারেন এবং গ্রেপিংয়ের 'অডিট.লগ এনজিনেক্স' থেকে প্রাপ্ত ত্রুটির সাথে সম্পর্কিত করতে পারেন denied


14

আমি বর্তমানে মুলগালায় লগইন করেছি এমন ব্যবহারকারী হিসাবে আমার এনগিনেক্স চালিয়ে আমার সমস্যার সমাধান করেছি ।

ডিফল্টরূপে nginx হিসাবে ব্যবহারকারীকে nginx.confনীচের মত ফাইলের একেবারে শীর্ষ অংশে সংজ্ঞায়িত করা হয়েছে ;

user nginx; # Default Nginx user

পরিবর্তন nginx এখানে - আপনার বর্তমান ব্যবহারকারীর নাম mulagala

user mulagala; # Custom Nginx user (as username of the current logged in user)

তবে এটি প্রকৃত সমস্যাটির সমাধান করতে পারে না এবং প্রকৃতপক্ষে পার্শ্ব প্রতিক্রিয়া থাকতে পারে।

কার্যকর সমাধানের জন্য, দয়া করে জোসেফ বারবারের সমাধানটি দেখুন


আপনাকে ধন্যবাদ যে
এটির

4

যদি "502 ব্যাড গেটওয়ে" ত্রুটিটি এনজিএনএক্সে এপিআই গেটওয়ে প্রক্সি পাসের জন্য সেন্টোস এপিআই url এ ছুঁড়ে ফেলে, সমস্যাটি সমাধানের জন্য নিম্নলিখিত কমান্ডটি চালান

sudo setsebool -P httpd_can_network_connect 1

2

সেন্টোস সার্ভারে আপ-স্ট্রিমিংক্স থেকে সংযোগের সময় 13-অনুমতি-অস্বীকৃত -

setsebool -P httpd_can_network_connect 1


1

আমিও এই সমস্যায় পড়েছি। আমি এইচএইচভিএম দিয়ে এনগিনেক্স ব্যবহার করছি, নীচে সমাধানটি আমার সমস্যাটি সমাধান করেছে:

sudo semanage fcontext -a -t httpd_sys_rw_content_t "/etc/nginx/fastcgi_temp(/.*)?"

sudo restorecon -R -v /etc/nginx/fastcgi_temp

1
  1. ব্যবহারকারীকে পরীক্ষা করুন /etc/nginx/nginx.conf
  2. ব্যবহারকারীর মালিকানা পরিবর্তন করুন।
sudo chown -R nginx:nginx /var/lib/nginx

এখন দেখুন যাদু।


0

তোমাকে অনেক ধন্যবাদ. আমি এই গাইডটি প্রয়োগ করেছি: সেন্টোস 7, অ্যাসপনেট কোর 3.1, এনগিনেক্স সেটআপ।


0

উত্তরের জন্য ধন্যবাদ। ২১ শে আগস্ট'১১ 'তে 12:14 এ কুমারের উত্তর আমার সমস্যাটি সমাধানের কয়েক দিনের পরে আমাকে অবকাশ দিয়েছে, যেমন:

connect() to 127.0.0.1:9090 failed (13: Permission denied) while connecting to upstream, client: 127.0.0.1, server

আমি প্রয়োগ করা সমাধানটি নীচে ছিল:

setsebool -P httpd_can_network_connect 1

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