概述
一、前言
前文 Nginx 解决WebApi跨域二次请求以及Vue单页面问题 当中虽然解决了跨域问题带来的二次请求,但也产生了一个新的问题,就是如果需要获取用户IP的时候,获取的IP地址总是本机地址。
二、原因
由于Nginx
反向代理后,在应用中取得的IP
都是反向代理服务器的IP
,取得的域名也是反向代理配置的Url的域名。
三、解决方案
解决该问题,需要在Nginx
反向代理配置中添加一些配置信息,目的将客户端的真实IP和域名传递到应用程序中。同时,也要修改获取IP地址的方法。
但是需要注意的是,通过Nginx
反向代理后,如果访问IP通过了几层代理,可能取得的IP地址是这种格式:clientIP,proxy1,proxy2
。
如果需要将IP地址插入到数据库的话,需要做防止注入。因此要对上述的IP地址的格式进行截取。
3.1 Nginx 配置如下
server {
listen 9461; # 监听端口号
server_name localhost 192.168.88.22; # 访问地址
location / {
root 项目路径; # 例如:E:/Publish/xxx/;
index index.html;
最后
以上就是缓慢香水为你收集整理的前后端分离布署下,Nginx获取客户端IP实现一、前言二、原因三、解决方案的全部内容,希望文章能够帮你解决前后端分离布署下,Nginx获取客户端IP实现一、前言二、原因三、解决方案所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复