Nginx问题之反向代理无法成功

1.问题描述

1.1.功能描述

1.https://www.baidu.com/zhnx/hapi/反向代理到https://www.sina.com/hapi/

1.2.配置如下

server {
  	listen       443;
  	server_name  www.baidu.com;
  	include proxy.conf;
  	access_log  logs/baidu.log  main;
	underscores_in_headers on;

  	location /zhnx/hapi/ {
    	access_log  logs/sina.log  main;  
   		proxy_pass https://www.sina.com/hapi/;
    } 			
}


proxy.conf 文件

#############proxy config #########################
proxy_redirect off;
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 2; 
proxy_send_timeout 15; 
#proxy_read_timeout 60; 
proxy_buffer_size 128k; 
proxy_buffers 32 32k; 
proxy_busy_buffers_size 128k; 
proxy_temp_file_write_size 128k;

但是无法代理成功

2.解决方案

在代理的目标服务器(www.sina.com)所属的Nginx服务器上
server_name 上需要加上 www.baidu.com

因为我们看上面proxy.conf文件中有这么一行配置
proxy_set_header Host $host; 
意思是在反向代理到www.sina.com地址的时候 Host(这里大小写无所谓,传输的过程中,会编译为host),
这里的host其实就是Nginx中的server_name,

Nginx问题之反向代理无法成功_第1张图片
如下✅配置

    
    server {
        listen       7009;
        server_name  www.sina.com 	www.baidu.com;
        
        location /hapi {
		   #其他操作
		}
	}

你可能感兴趣的:(nginx)