Nginx + অ্যাপাচি পিছনে স্ল্যাশ পুনঃনির্দেশ [বন্ধ]


8

আমার পোর্টে এমন একটি Nginxসার্ভার চলছে যা 80প্রক্সি হিসাবে কাজ করছে Apache 2.2যা শুনছে127.0.0.1:8080

আমি যখন অ্যাক্সেস http://hostname/subfolder/করি তখন এটি দুর্দান্ত কাজ করে।
আমি যখন http://hostname/subfolderএটি অ্যাক্সেস করি তখন http://hostname:8080/subfolder/যা আমাকে ভুল তা পুনঃনির্দেশ করে ।

যতদূর আমি দেখতে পাচ্ছি ভুল পুনর্নির্দেশটি অ্যাপাচি দ্বারা ফিরিয়ে দেওয়া হয়েছে UseCanonicalNameএবং UseCanonicalPhysicalProxyউভয়ই সেট করা আছেOff

এটি ঠিক করার জন্য কোনও ধারণা?


সমস্যাটি আপনার এনজিএনএক্স কনফিগারেশনের সাথে বিবেচনা করে মনে হচ্ছে যে পিছনে 80 পোর্টে আপনার অ্যাক্সেসের ফলে 8080 পোর্টে পুনর্নির্দেশের ফলাফল পাওয়া যায় UN
পিপি

আমি প্রক্সি হিসাবে nginx ব্যবহার করি
কোয়ার্ক

উত্তর:


5

আমি এটিতেও ছুটে এসেছি এবং আমি আমার এনজিএনএক্স কনফিগারেশনে আমার প্রক্সি_পাস নির্দেশের ঠিক পরে একটি প্রক্সি_ড্রেইটরেটেক্ট ডাইরেক্টিভের সাথে এটি ঠিক করতে সক্ষম হয়েছি:

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

এটি আমার সম্পূর্ণ এনগিনেক্স কনফিগারেশন (আমার ক্ষেত্রে, অ্যাপাচি পোর্ট ৮১ এ রয়েছে এবং দুটি সাইট হোস্ট করছে I

server {
    listen 80;

    access_log /var/log/nginx/apache-proxy.access.log;

    location / {
        proxy_pass http://localhost:81;

        #fix for apache redirects that include the port number
        proxy_redirect http://nfriedly.com:81/ http://nfriedly.com/;
        proxy_redirect http://misticflame.com:81/ http://misticflame.com/;

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        client_max_body_size 10m;
        client_body_buffer_size 128k;
        proxy_connect_timeout 6000;
        proxy_send_timeout 6000;
        proxy_read_timeout 6000;
        proxy_buffer_size 4k;
        proxy_buffers 4 32k;
        proxy_busy_buffers_size 64k;
        proxy_temp_file_write_size 64k;
        send_timeout 6000;
        proxy_buffering off;
        proxy_next_upstream error;

    }
}

দ্রষ্টব্য: এটি 5+ বছর আগে এনগিনেক্সের প্রাক-1.0 সংস্করণের জন্য ছিল। বর্তমান সংস্করণের জন্য প্রক্সি_ড্রেইটারের জন্য এখানে ডক্স রয়েছে: http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_redirect


প্রক্সি_ডাইরেক্ট যুক্ত করে সিনট্যাক্স ত্রুটি দেয়
টমসওয়ায়ার

এটি এনজিনেক্সের মোটামুটি পুরানো সংস্করণে ছিল। আমি আর nginx ব্যবহার করছি না (আমার ব্যক্তিগত সাইটের জন্য গিথুব পৃষ্ঠাগুলিতে কেবল স্থির সামগ্রী), তবে আমি বর্তমান প্রক্সি_ড্রেইট ডক্সের লিঙ্ক সহ উত্তরটি আপডেট করেছি।
নাথান ফ্রাইডলি

এইভাবে, আপনি পুনঃনির্দেশের কারণে এখনও এটি ধীর হয়ে
উঠছেন

2

যদি অ্যাপাচে আপনার সার্ভারনাম নির্দেশটি "হোস্টনাম: 8080" এ সেট করা থাকে, ": 8080" সরান বা "হোস্টনাম: 80" এ পরিবর্তন করুন। আপনি "প্রক্সি_সেট_হেডার হোস্ট $ হোস্ট: 80" যুক্ত করতে পারেন


1

আমার অনেক আগে এই সমস্যাটি ছিল ... আমার মনে আছে এটি এইচটিটিপি আরএফসি এর সাথে করার ছিল, শেষে স্ল্যাশ একটি ডিরেক্টরি (/ পরীক্ষা /) বোঝায়, শেষে কোনও ফাইল (/ পরীক্ষা) হয় না

দীর্ঘ গল্প সংক্ষিপ্ত, একটি পুনর্লিখনের নিয়ম যুক্ত করুন যা কোনও অনুরোধ না থাকলে অনুরোধে একটি পিছনে স্ল্যাশ যুক্ত করবে।

তাকান nginx সার্ভারের সাথে trailing স্ল্যাশ ইস্যু: মীমাংসিত

HTP


1

আমি সম্প্রতি এই সঠিক সমস্যার মধ্যে দৌড়ে। প্রস্তাবিত সমাধানগুলি কাজ করার সময়, এনগিনেক্স একটি অন্তর্নির্মিত সমাধান সরবরাহ করে:

proxy_redirect default;

Http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_redirect এ ডকুমেন্টেশন

এটি কীভাবে ব্যবহার করবেন তার একটি সম্পূর্ণ উদাহরণ এখানে:

server {
  listen 80;
  location / {
    proxy_pass http://localhost:8080
    proxy_redirect default
  }
}

0

সম্ভবত এনগিনেক্স প্রক্সি শিরোনামগুলি সেট করে নিচ্ছে না যে আসল অনুরোধটি কেমন দেখাচ্ছে ap

এনগিনেক্সে:

proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

Http://wiki.nginx.org/LikeApache দেখুন

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