繁体   English   中英

Nginx重定向到错误的URL

[英]Nginx is redirecting to the wrong url

我一直想弄清楚这个问题已经有将近6个月了,而我却一头雾水。 我读过我可能会在堆栈上溢出的每篇文章,甚至与我的问题有关,而且什么也没有。 我有一台机器运行redmine和书架。 我在该计算机上安装了Nginx,并配置为使用redmine.home.mydomain.com和kb.home.mydomain.com,效果很好。 当我输入这些时没问题。

当我键入尝试从外部Nginx服务器重定向到该URL时遇到的问题。 我有redmine.mydomain.com和kb.mydomain.com。 Redmine一个很好用,但是kb One重定向到Redmine。 我不知道为什么。

我已经在多个浏览器中检查了响应头,并将其重定向到https://kb.mydomain.com,但该调用的响应是redmine主页。 即使它应该重定向到kb.home.mydomain.com,如果我直接键入它也可以正常工作。

书架配置

# redirect to ssl
server {
  listen 80;
  listen [::]:80;
  server_name kb.mydomain.com www.kb.mydomain.com;
  return 301 https://$server_name$request_uri;
}

server {
  listen 443 ssl;
  listen [::]:443 ssl;
  server_name kb.mydomain.com www.kb.mydomain.com;
  client_max_body_size 50M;


  ssl on;
  ssl_certificate /etc/letsencrypt/live/mydomain.com-0001/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/mydomain.com-0001/privkey.pem;

  access_log  /var/log/nginx/kb.access;
  error_log   /var/log/nginx/kb.error;

  location / {
    proxy_pass http://kb.home.mydomain.com/;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
  }
}

Redmine的配置。

# redirect to ssl  
server {                      
  listen 80;
  listen [::]:80;
  server_name redmine.mydomain.com www.redmine.mydomain.com;
  return 301 https://$server_name$request_uri; 
}                                                                             

server {                                                                      
  listen 443 ssl http2;                                                       
  listen [::]:443 ssl http2;                                                  
  server_name redmine.mydomain.com www.redmine.mydomain.com;                  
  client_max_body_size 50M;                                                   
  ssl_certificate /etc/letsencrypt/live/mydomain.com-0001/fullchain.pem;      
  ssl_certificate_key /etc/letsencrypt/live/mydomain.com-0001/privkey.pem;    
  location / {
    proxy_pass http://redmine.home.mydomain.com;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr; 
  }                                                                           
}   

我不知道为什么它将重定向到Redmine,任何帮助将不胜感激。

发生这种情况的原因是,您需要设置正确的Header HTTP Host才能在后端环境中工作,这是怎么做的,您甚至进入默认的网站。

server {
  listen 80;
  listen [::]:80;
  server_name kb.mydomain.com www.kb.mydomain.com;
  return 301 https://$server_name$request_uri;
}

server {
  listen 443 ssl;
  listen [::]:443 ssl;
  server_name kb.mydomain.com www.kb.mydomain.com;
  client_max_body_size 50M;


  ssl on;
  ssl_certificate /etc/letsencrypt/live/mydomain.com-0001/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/mydomain.com-0001/privkey.pem;

  access_log  /var/log/nginx/kb.access;
  error_log   /var/log/nginx/kb.error;

  location / {
    proxy_pass http://kb.home.mydomain.com/;
    proxy_set_header Host kb.home.mydomain.com;
    proxy_set_header X-Real-IP $remote_addr;
  }
}

Redmine的配置。

server {                      
  listen 80;
  listen [::]:80;
  server_name redmine.mydomain.com www.redmine.mydomain.com;
  return 301 https://$server_name$request_uri; 
}                                                                             


server {                                                                      
  listen 443 ssl http2;                                                       
  listen [::]:443 ssl http2;                                                  
  server_name redmine.mydomain.com www.redmine.mydomain.com;                  
  client_max_body_size 50M;                                                   
  ssl_certificate /etc/letsencrypt/live/mydomain.com-0001/fullchain.pem;      
  ssl_certificate_key /etc/letsencrypt/live/mydomain.com-0001/privkey.pem;    
  location / {
    proxy_pass http://redmine.home.mydomain.com;
    proxy_set_header Host redmine.home.mydomain.com;
    proxy_set_header X-Real-IP $remote_addr; 
  }                                                                           
} 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM