স্ল্যাশ ছাড়াই url অ্যাক্সেস করার সময় Nginx 8080 পোর্টে পুনর্নির্দেশ করে [বন্ধ]


19

অ্যাক্সেস করার সময়: http://example.com/somefolder -> http://example.com:8080/somefolder

আমি এটি চেষ্টা করেছি:

 http {
    port_in_redirect off;

কোন ধারনা?


আপনি আপনার কনফিগারেশন প্রদান করতে পারেন? আপনি কি এনজিনেক্সের পিছনে অন্য কোনও পরিষেবাতে প্রক্সিং করছেন?
শেন ম্যাডেন

আমি বিশ্বাস করি আমরা অ্যাপাচি প্রক্সিং করছি। আপনি কোন কনফিগারেশন ফাইল চান?
ক্রিস Muench

3
এনগিনেক্স কনফিগারেশন ফাইল serverযা ব্লকটিকে সংজ্ঞায়িত করে যা proxy_passনির্দেশনা করে। আপনার সম্ভবত যা প্রয়োজন তা proxy_redirectহ'ল একটি নির্দেশিকা হবে - আপনার কনফিগারেশনটি দেখে নিশ্চিত হওয়া উচিত।
শেন ম্যাডেন

নোট কিছু ব্রাউজার সুতরাং যখন পরিবর্তন পুনঃনির্দেশ ক্যাশে যে port_in_redirectথেকে onথেকে offআপনি এটিকে পুনর্সূচনা করতে হতে পারে।
নিমজ্জন

@ ইমার্শন port_in_redirectকিছুতেই কাজ করে না
টমসওয়ায়ার

উত্তর:


21

আমি ঠিক একই সমস্যার মধ্যে দৌড়েছি এবং port_in_redirect off;আসলে আমার পক্ষে কাজ করেছি, কেবলমাত্র নিশ্চিত হয়ে নিন যে আপনি এটি server {}ব্লকের ভিতরে ব্যবহার করেছেন ।

server {
  listen 8080;
  server_name example.com;

  port_in_redirect off;
  autoindex on;

  location / {
    root /var/www/example.com;
    index index.html;
  }
}

এমনকি port_in_redirectভিতরে ব্যবহার করুন location
wqw

একটি লোড ব্যালান্সারের পিছনে 8080 এ nginx হোস্টিংয়ের জন্য পুরোপুরি কাজ করেছিল। আপনাকে ধন্যবাদ
xxstevenxo

আমার পক্ষেও কাজ করেছেন, আপনার সহায়তার জন্য অনেক ধন্যবাদ
h3nr1ke

4

এটি সমস্যার সমাধান করা উচিত। proxy_redirectনির্দেশের পরে proxy_passডাইরেক্টিভ যোগ করুন

proxy_redirect http://example.com:8080/ http://example.com/;


3

এনজিনেক্স বিপরীত প্রক্সি সেটআপের পিছনে অ্যাপাচি থাকা অবস্থায় যদি কেউ এখনও এই সমস্যাটি অনুভব করে থাকেন তবে আপনি এফএফ চেষ্টা করতে পারেন:

  অবস্থান /
    প্রক্সি_ড্রেইक्ट অফ;
    প্রক্সি_সেট_হেডার হোস্ট $ হোস্ট: $ সার্ভার_পোর্ট; # <- এই আমার সমাধান
    প্রক্সি_সেট_হেডার এক্স-ফরওয়ার্ড-হোস্ট $ http_host;
    প্রক্সি_সেট_হেডার এক্স-রিয়েল-আইপি $ রিমোট_এডিডিআর;
    প্রক্সি_সেট_হেডার এক্স-ফরওয়ার্ড-ফর $ প্রক্সি_অ্যাড_এক্স_ ফরওয়ার্ড_এর জন্য;
    প্রক্সি_পাস http://127.0.0.1:8083 ;
  }
  

আমার সেটআপটি হ'ল আমি আপাচিকে 127.0.0.1:8083 শোনার এবং এটির জন্য এনজিনেক্স প্রক্সির অনুরোধ জানাতে দেব।


2

আমার এনজিনেক্স + অ্যাপাচি সেটআপেও আমার একই সমস্যা ছিল। অ্যাপাচি মনে হচ্ছে এটির নিজস্ব বন্দরে পুনঃনির্দেশিত হচ্ছে (8080 চলমান), যখন এনজিনেক্স 80 পোর্টে রয়েছে।

আমার সেটআপে, এটি সাধারণ ইউআরএলের জন্য অসীম পুনর্নির্দেশ লুপ তৈরি করেছে :

proxy_set_header Host $host:80; # Force port 80

পরিবর্তে এই তথ্যটি 80 টি পোর্টে আবদ্ধ করুন:

proxy_bind $host:80; # Bind to port 80

এটি আমার এনগিনেক্স সার্ভার ব্লক:

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

    server_name _; # Wildcard server

    location / {
        proxy_bind $host:80; # Bind to port 80 << THIS IS THE MAGIC
        proxy_pass http://localhost:8080;
        proxy_set_header Host            $host; # Pass host header
        proxy_set_header X-Real-IP       $remote_addr; # Preserve client IP
        proxy_set_header X-Forwarded-For $remote_addr;
    }
}

এই ওয়াইল্ডকার্ড সেটআপের সাথে, সমস্ত অনুরোধ nginx এর জন্য সার্ভার ব্লক নেই যা অ্যাপাচি-তে প্রেরণ করা হয়েছে।


মোটেও কাজ করে না
টমসওয়ায়ার

1

অন্য কারও যদি সমস্যা হয় - নিবন্ধটি এখানে: http://www.linuxquestions.org/questions/linux-server-73/strange-nginx-redirects-without-trailing-slash-930876/ আমার জন্য সমস্যাটি সমাধান করেছে ।

প্রক্সিটিতে আমাকে একটি অতিরিক্ত শিরোনাম যোগ করতে হয়েছিল।

আপনার কাছে হোস্ট সেট আছে $http_hostএবং আপনি নীচের মত পছন্দগুলি সেট করেছেন X-Forwarded-Hostতা নিশ্চিত করুন $http_host:

proxy_redirect off;
proxy_set_header Host $http_host;             # <-- make sure this is $http_host
proxy_set_header X-Forwarded-Host $http_host; # <-- make sure you set this
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 16k;
proxy_buffers 32 8k;
proxy_busy_buffers_size 64k;

এটি মোটেও কাজ করে না
টমসওয়ায়ার



0

আমারও একই সমস্যা ছিল।

হতে পারে আপনাকে proxy_set_headerহেডারের হোস্ট এবং অবস্থান নির্ধারণের জন্য নির্দেশাবলী ব্যবহার করা উচিত । আমার কনফিগারেশনে আমি যুক্ত করেছি proxy_set_header Location $host:80; এবং সমস্ত অনুরোধগুলি এখন ৮০ বন্দরে ফিরে আসে।


আমি বিশ্বাস করি এটি "/" এর বাইরে পুনর্নির্দেশগুলি ভেঙে দেবে - প্রতিটি পুনর্নির্দেশ $ হোস্ট: 80
পেরিরিজমকে

0

এই সমস্যাটি Nginx অটো দ্বারা নিখুঁত পাথের আপেক্ষিক পাথ অনুবাদ করে ডেকে আনা হয়েছে?
এনগিনেক্সকে অনুবাদ না করার কথা বলার একটি উপায় আছে, আপনি স্ল্যাশের আগে একটি স্থান যুক্ত করেন: ngx.redirect(" /foo")


দয়া করে মনে রাখবেন যে এটি 3 বছর আগের একটি প্রশ্ন is
হরিণ হান্টার

-1

পরিবর্তে আমি এটি আপনার সার্ভার ব্লকে যুক্ত করার পরামর্শ দেব:

rewrite /wp-admin$ $scheme://$host$uri/ permanent;

আপনি যখন উদাহরণ ডটকম / ডাব্লুপি- অ্যাডমিনে যান তখন এটি উদাহরণ.কম :8080 / ডাব্লুপি- অ্যাডমিনে যাওয়ার চেয়ে উদাহরণ / ডাব্লুপি-অ্যাডমিনে যাবে এবং আপনি ক্লাউডফ্লেয়ার ডিএনএসে থাকলে উদাহরণস্বরূপ এটি বলবে সাইট ডাউন আছে।

আমি উবুন্টু, এনগিনেক্স এবং বার্নিশ ব্যবহার করছি এবং এটি পোর্ট_ইন_রেডেক্ট অক্ষম না করে এখন পুরোপুরি কাজ করে।

যোগ করার জন্য, পরে এনজিনেক্স পুনরায় চালু করতে ভুলবেন না:

sudo service nginx restart

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