কোনও পরিবর্তন URL না করে অন্য ডোমেনে Nginx প্রক্সি ডোমেন


18

আমার প্রশ্ন সাবজেক্টে আছে। আমার একটি ডোমেন আছে, এটি এটির এনগিনেক্সের কনফিগারেশন:

server {
listen 80;
server_name connect3.domain.ru www.connect3.domain.ru;

access_log /var/log/nginx/connect3.domain.ru.access.log;
error_log /var/log/nginx/connect3.domain.ru.error.log;

root /home/httpd/vhosts/html;
index index.html index.htm index.php;

location ~* \.(avi|bin|bmp|css|dmg|doc|docx|dpkg|exe|flv|gif|htm|html|ico|ics|img|jpeg|jpg|js|m2a|m2v|mov|mp3|mp4|mpeg|mpg|msi|pdf|pkg|png|pps|ppt|pptx|ps|rar|rss|rtf|swf|tif|tiff|txt|wmv|xhtml|xls|xml|zip)$ {
    root /home/httpd/vhosts/html;
    access_log off;
    expires 1d;
}

location ~ /\.(git|ht|svn) {
    deny all;
}

location / {
    #rewrite ^ http://connect2.domain.ru/;
    proxy_pass http://127.0.0.1:8080/;
    proxy_redirect off;
    proxy_hide_header "Cache-Control";
    add_header Cache-Control "no-store, no-cache, must-revalidate, post-check=0, pre-check=0";
    proxy_hide_header "Pragma";
    add_header Pragma "no-cache";
    expires -1;
    add_header Last-Modified $sent_http_Expires;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

আমার সাথে কানেক্ট 2.domain.ru হোস্টের প্রক্সি করা দরকার, তবে ব্রাউজারের ঠিকানা বারগুলিতে কোনও URL পরিবর্তন হয়নি। আমার মন্তব্য করা পুনর্লিখনের লাইনটি এই সমস্যার সমাধান করতে পারে, তবে এটি কেবল একটি পুনর্লিখন, সুতরাং আমি একই URL এর সাথে থাকতে পারি না।

আমি জানি যে এই প্রশ্নটি সহজ, তবে দয়া করে সহায়তা করুন। ধন্যবাদ.

উত্তর:


26

আপনি সেট করুন:

proxy_set_header Host $host;

তুমি চাও:

proxy_set_header Host connect2.domain.ru;

এবং সব শেষ? আমার প্রয়োজন প্রক্সি_পাস 127.0.0.1:8080 ; প্রক্সি_পাস কানেক্ট 2.domain.ru:8080 ; ? অথবা কেবল পুনরায় লেখার মতোই মন্তব্য করুন এবং প্রক্সি_সেট_হেডারটি পরিবর্তন করুন?
এভেজেনি ইয়াবলোকভ

এই চেষ্টা। না, ইউআরএল পরিবর্তন।
এভেজেনি আইবলোকভ

1
অথবা কেবল পুনরায় লেখার মতোই মন্তব্য করুন এবং প্রক্সি_সেট_হেডারটি পরিবর্তন করুন? Yeap।
ভিবার্ট

7

সুতরাং আমি মনে করি - আমি যদি সমস্যাটি সঠিকভাবে বুঝতে পারি তবে সমাধান এখানে দেওয়া হয়েছে:

 # backend.wants.this.server.com
 # browser.shows.this.server.com

server {
  listen 80;
  server_name browser.shows.this.server.com;

  location / {
     proxy_set_header Host backend.wants.this.server.com;
     proxy_redirect http://backend.wants.this.server.com/ http://browser.shows.this.server.com/; 
  }
}

এটা কি কাজ করে? অথবা আপনি যদি প্রক্সি_ড্রাইরেক্ট করেও আপনারও প্রক্সি_পাস নির্দেশিকা দরকার?
ভিনসেন্ট ডি স্মেট

6

8080 পোর্ট সম্পর্কে টেলিপ্যাথি বন্ধ করা হয়েছে, কারণ আপনি আমাদের সম্পূর্ণ কনফিগারেশন প্রদর্শন করেন না।

server {
    listen 80;
    server_name connect3.domain.ru www.connect3.domain.ru;

    location / {
        proxy_pass http://connect2.domain.ru;
        proxy_set_header Host connect2.domain.ru;
    }
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.