এনগিনেক্স প্রক্সি_পাসে আইপিভি 6 অক্ষম করুন


18

আমার সার্ভারে IPv6 ঠিকানা নেই।

যাইহোক, আমি যখন আইজিভি 4 এবং আইপিভি 6 দিয়ে আপগ্রেমে Nginx প্রক্সি_পাস ব্যবহার করি, কখনও কখনও এটি IPv6 ব্যবহার করে বহির্গামী অনুরোধগুলি প্রেরণের চেষ্টা করে:

2013/07/30 00:25:06 [error] 1930#0: *1482670 connect() to [AAAA:BBBB:C:DDD:E:F:GGG:HHH]:443 failed (101: Network is unreachable) while connecting to upstream, client: AA.BB.CC.DD, server: example.com, request: "GET /download/file HTTP/1.0", upstream: "https://[AAAA:BBBB:C:DDD:E:F:GGG:HHH]:443/download/file", host: "example.com"

প্রক্সি_পাসে বহির্গামী অনুরোধগুলির জন্য আমি কীভাবে আইপিভি 6 অক্ষম করতে পারি?

nginx.conf:

upstream download {
  server download.example.com:443;
  keepalive 8;
}

location /download {
  proxy_set_header      X-Forwarded-For  $proxy_add_x_forwarded_for;
  proxy_set_header      Connection "";
  proxy_ignore_headers  X-Accel-Redirect;
  proxy_http_version    1.1;
  resolver              8.8.8.8;
  resolver_timeout      5s;
  proxy_pass            https://download;
}

nginx -V:

nginx version: nginx/1.4.2
built by gcc 4.7.2 (Debian 4.7.2-5)
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-mail --with-mail_ssl_module --with-file-aio --with-http_spdy_module --with-cc-opt='-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2' --with-ld-opt=-Wl,-z,relro --with-ipv6

ওএস: দেবিয়ান হুইজি

Linux 3.2.0-4-amd64 #1 SMP Debian 3.2.46-1 x86_64 GNU/Linux

আইপি এ

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 6c:62:6d:7a:ea:af brd ff:ff:ff:ff:ff:ff
    inet XXX.XXX.XXX.XXX/27 brd XXX.XXX.XXX.XXX scope global eth0

আপনার কি করার পরে কি এই ঘটবে sudo sysctl -w net.ipv6.bindv6only=0?
ফ্লপ করুন

ফ্লপ, নেট.ipv6.bindv6only = 0 সাহায্য করে না
আন্তন

এটি অবশ্যই ভুল দেখাচ্ছে। আপনার কমপক্ষে IPv6 লিঙ্ক-স্থানীয় ঠিকানা থাকা উচিত। আপনি বা আপনার সরবরাহকারী এই সার্ভারের কনফিগারেশনে কী পরিবর্তন করেছেন?
মাইকেল হ্যাম্পটন

আমরা কেবল নেট.আইপিভি 6.কনফ.এল.ডিজিবল_আইপিভি 6 = 1 যুক্ত করেছি। আমাদের প্রদানকারী DHCP ব্যবহার করে IPv6 বরাদ্দ করে না, সুতরাং এটি ম্যানুয়ালি কনফিগার করা উচিত।
অ্যান্টন

বিশ্বব্যাপী সিস্টেম সেটিংস পরিবর্তন না করেই কী বিশেষভাবে এনগিনেক্স কনফিগারেশনের মাধ্যমে সমাধান করার উপায় আছে?
দিমিত্রি পলুশকিন

উত্তর:



1

ব্যবহার resolverযখন ব্যবহার করে আমাকে জন্য কাজ না করে proxy_passএকটি HTTPS URL করতে। আমাকে সিস্টেলটি পরিবর্তন করতে হয়েছিল।

  1. নিম্নলিখিত লাইন যুক্ত করুন /etc/sysctl.conf
    net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1 net.ipv6.conf.eth0.disable_ipv6 = 1 net.ipv6.conf.eth1.disable_ipv6 = 1 net.ipv6.conf.eth2.disable_ipv6 = 1 net.ipv6.conf.eth3.disable_ipv6 = 1
  2. সিস্টেম রিবুট করুন sysctl -p
  3. সাথে nginx পুনরায় বুট করুন sudo nginx -s reload

ফ্লিকারের প্রক্সিংয়ে আমার সমস্যা সমাধান করুন।
গ্যারিবিশপ

এটি আমার সমস্যাটিকে স্থির করে তবে এখন ত্রুটি লগ অভিযোগগুলি দেখায় (99: অনুরোধের ঠিকানাটি বরাদ্দ করতে পারে না) যদিও অনুরোধটি আপাতভাবে সফল হয়। আমি কেবল এটি কীভাবে আইপিভি 6 ঠিকানা চেষ্টা করে আটকাতে হবে তা নির্ধারণ করতে চাই।
গ্যারিবিশপ

আইপিভি 6 = অফকে এনজিঙ্ক্সে সমাধানের সাথে এটিকে সংশোধন করে ত্রুটি বার্তাগুলি অপসারণ করে।
গ্যারিবিশপ

0

উপরের সমাধানগুলির কোনওটিই আমার পক্ষে কার্যকর হয়নি, মনে হয় যে রেজলভার সংজ্ঞাগুলি কোনও বিশেষ ক্ষেত্রে এনগিনেক্স দ্বারা ব্যবহৃত হয় এবং এটি সাধারণত সিস্টেম রেজলভার ব্যবহার করে আইপি সমাধান করে।

আমার চূড়ান্ত সমাধানটি হ'ল / ইত্যাদি / হোস্টগুলিতে আমার প্রক্সি হোস্টের জন্য একটি আইপিভি 4 সংজ্ঞায়িত করা এবং এনগিনেক্স পুনরায় চালু করা

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