Nginx代理后得不到真实访问IP

Nginx代理后得不到真实访问IP

如下配置,监听80端口,代理tomcat网站和api接口。

代理网站,需要真实ip到达,所以添加三行配置就行,注意顺序

代理接口,需要把代理的指定路径去掉,如下的 /api,使用rewrite重写一下请求路径

location /webapps/ {
    proxy_pass http://tomcat;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header REMOTE-HOST $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}		
		
location /api/ {
    rewrite  ^.+api/?(.*)$ /$1 break;    #去掉 /api
    proxy_pass http://api;    
}	
————————————————
版权声明:本文为CSDN博主「公子小白有点黑」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Yuan52007298/article/details/86584292

2、真实ip的到达方式

proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header REMOTE-HOST $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
————————————————
版权声明:本文为CSDN博主「公子小白有点黑」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Yuan52007298/article/details/86584292

3、我的全套配置

#运行的用户
#user  nobody;
 
#启动进程,通常设置成和cpu的数量相等
worker_processes  1;
 
#全局错误日志
error_log  C:/nginx/nginx-1.15.7/logs/error.log;
error_log  C:/nginx/nginx-1.15.7/logs/error.log  notice;
error_log  C:/nginx/nginx-1.15.7/logs/error.log  info;
 
#PID文件,记录当前启动的nginx的进程ID
pid        C:/nginx/nginx-1.15.7/logs/nginx.pid;
 
#工作模式及连接数上限
events {
    worker_connections  1024;
}
 
#设定http服务器,利用它的反向代理功能提供负载均衡支持
http {
	#设定mime类型(邮件支持类型),类型由mime.types文件定义
    include       mime.types;
    default_type  application/octet-stream;
 
	#设定请求缓冲
    server_names_hash_bucket_size  128;
    client_header_buffer_size   32K;
    large_client_header_buffers  4 32k;
    # client_max_body_size   8m;
 
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
 
    access_log  C:/nginx/nginx-1.15.7/logs/access.log  main;
 
    #sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件,对于普通应用,
    #必须设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为 off,以平衡磁盘与网络I/O处理速度,降低系统的uptime.
    sendfile       on;
    tcp_nopush     on;
    tcp_nodelay    on;
 
	#连接超时时间
    keepalive_timeout  65;
 
    #开启gzip压缩,降低传输流量
    gzip  on;
    gzip_min_length    1k;
    gzip_buffers    4 16k;
    gzip_http_version  1.1;
    gzip_comp_level  2;
    gzip_types  text/plain application/x-javascript text/css  application/xml;
    gzip_vary on;
	
    #设定实际的服务器列表
    upstream tomcat{
        server 127.0.0.1:8080;
    }
    upstream api{
	    server 127.0.0.1:8081;
	    #server xxx.xx.xx.xxx:8081 weight=4 max_fails=2 fail_timeout=30s;  #根据权重进行负载均衡
    }
    upstream vote{
	    server 127.0.0.1:8082;
    }
	#HTTP服务器
    server {
	
	    #监听端口
        listen      80 default backlog=2048;
	listen      443 ssl;
		
	#定义自己的访问url,hosts中有配置
        server_name  localhost;
 
	ssl_certificate server.crt;
	ssl_certificate_key server.key;
	ssl_session_timeout 5m;
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
	ssl_ciphers ECDH:AESGCM:HIGH:!RC4:!DH:!MD5:!aNULL:!eNULL;
	ssl_prefer_server_ciphers on;
		
	#首页
	index index.jsp
          
	# 项目路径
	root C:\Program Files\Apache Software Foundation\Tomcat 8.0\webapps;
         
	# 编码格式
	charset utf-8;
         
		#代理配置参数
        proxy_connect_timeout 180;
        proxy_send_timeout 180;
        proxy_read_timeout 180;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarder-For $remote_addr;	
		
	location / {
            proxy_pass http://vote;
	    proxy_set_header X-Real-IP $remote_addr;
	    proxy_set_header REMOTE-HOST $remote_addr;
	    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;		
        }
	location /webapp/ {
	    rewrite  ^.+webapp/?(.*)$ /$1 break;
            proxy_pass http://tomcat;
	    proxy_set_header X-Real-IP $remote_addr;
	    proxy_set_header REMOTE-HOST $remote_addr;
	    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }	
		
	location /api/ {
            rewrite  ^.+api/?(.*)$ /$1 break;    #去掉 api
	    proxy_pass http://api;  
        }		
		#静态资源
	location /resource/ {
	    rewrite  ^.+resource/?(.*)$ /$1 break; 
	    root C:/ftp/;
	    autoindex on;
	}
 
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
 
    }
————————————————
版权声明:本文为CSDN博主「公子小白有点黑」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Yuan52007298/article/details/86584292
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值