এই এনগিনেক্স উদাহরণটির উদ্দেশ্য হ'ল গিটল্যাব এবং ওপেনডাব্লুআরটি লুসি একটি বিপরীত প্রক্সি মাধ্যমে পুনর্নির্দেশ করা। এটি ইতিমধ্যে বেশ কয়েকটি অন্যান্য ওয়েবসাইটের জন্য কাজ করছে, যার একটি বেস ইউআরএল রয়েছে যা এই সমস্যাটিকে পাল্টে দেয় বলে মনে হয়।
- এই উদাহরণে গিটল্যাব 9000 বন্দরে স্থানীয় সার্ভারে রয়েছে।
- Nginx ওয়েবসাইট 8080 বন্দরে রয়েছে।
- ওপেনডব্লিউআরটিতে ঠিক একই সমস্যা রয়েছে তবে / সিজি-বিন / লুচি /
উদাহরণ অবস্থানের জন্য প্রাসঙ্গিক nginx কনফিগারেশন;
location /gitlab/ {
proxy_pass http://127.0.0.1:9000/;
proxy_redirect default;
}
- নোট করুন যে ফলাফলগুলি একটি পিছনে স্ল্যাশ সহ এবং এর সাথে একই।
এই অবস্থানটিতে কিছু শিরোনাম প্রক্সি কনফিগারেশন বিকল্প প্রয়োগ করা হচ্ছে।
# Timeout if the real server is dead
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;
# Basic Proxy Config
proxy_set_header Host $host:$server_port;
proxy_set_header Origin $scheme://$host:$server_port;
proxy_set_header Connection $http_connection;
proxy_set_header Cookie $http_cookie;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header X-Forwarded-Protocol $scheme;
proxy_set_header X-Scheme $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Ssl on;
proxy_set_header X-Frame-Options SAMEORIGIN;
# Advanced Proxy Config
send_timeout 5m;
proxy_read_timeout 300;
proxy_send_timeout 300;
proxy_connect_timeout 300;
proxy_buffers 32 4k;
proxy_buffer_size 4k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
proxy_http_version 1.1;
proxy_cache_bypass $cookie_session;
proxy_no_cache $cookie_session;]
- পরিবর্তে # প্রক্সি_সেট_হেডার হোস্ট মন্তব্য করা ব্রাউজারটিতে পুনঃনির্দেশ করে
https://127.0.0.1:9000/users/sign_in
ব্রাউজ করার সময় https://website.com:8080/gitlab/
;
GET /gitlab/ HTTP/1.1
Host: website.com:8080
প্রতিক্রিয়া ভুলভাবে /users/sign_in
পরিবর্তে ফিরে ফিরে/gitlab/users/sign_in
HTTP/1.1 302 Found
Cache-Control: no-cache
Connection: keep-alive
Content-Type: text/html; charset=utf-8
Location: https://website.com:8080/users/sign_in
Https: // ওয়েবসাইটটিতে ম্যানুয়ালি ব্রাউজিং : 8080 / গিটল্যাব / ব্যবহারকারী / সাইন_ইন পৃষ্ঠাটি লোড করে তবে উপরের মত একই সমস্যা না হওয়া পর্যন্ত কোনও সম্পদ হ্রাস পাবে না।
এনজিনেক্স ডক্স পড়া , এটি প্রস্তাব দেয় যে ডিফল্ট প্রক্সি আচরণটি এই দৃশ্যটি হ্যান্ডেল করা উচিত, যদিও এটি ব্যর্থ বলে মনে হচ্ছে।
লগগুলি তেমন দেখাবে বলে মনে হচ্ছে না।
এটি কেন ঘটতে পারে তা নির্ণয় করতে আরও কী কী পদক্ষেপ নেওয়া উচিত?