私の質問はsubjです。私は1つのドメインを持っています、それはそれのnginxの設定です:
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;
}
}
Connect3.domain.ruホストをconnect2.domain.ruにプロキシする必要がありますが、ブラウザのアドレスバーでURLが変更されていません。コメントアウトしたリライト行でこの問題を解決できるかもしれませんが、これは単なるリライトであるため、同じURLにとどまることはできません。
この質問は簡単ですが、助けてください。ありがとうございました。
あなたが設定した:
proxy_set_header Host $Host;
あなたが欲しい:
proxy_set_header Host connect2.domain.ru;
だから私は思う-私が問題を正しく理解した場合の解決策はここにあります:
# 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/;
}
}
完全な構成を表示しないため、ポート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;
}
}