Swa*_*tar 4 networking android ip-address ios firebase
我正在制作一个 iOS 和 Android 应用程序。我们需要应用程序中的充值功能。我们计划使用一家公司提供的 Recharge API。
由于安全原因,API 仅允许通过特定 IP 白名单 IP 地址进行请求。
理想情况下,此 IP 地址应该是我们服务器的 IP。
但是我们在我们的应用程序中使用 Firebase 作为数据库、存储和身份验证。
那么我们如何才能让我们的用户通过应用程序发出的 API 请求能够通过而不导致错误,因为用户的 IP 地址不会被列入白名单?
您需要代理来自您的用户的 API 请求,这样,对于您的 API 提供商,所有请求似乎都来自将被列入白名单的同一个静态 IP 地址。
代理是一种被动的软件组件,它本质上在一端接收请求,并将它们转发到另一端的 API 服务器。换句话说,它代表您的用户进行 API 调用。
您可以使用 NGINX、HAProxy 或任何可用的反向代理,或者使用您选择的语言编写自定义代理 - 因为这不是一项困难的任务。
在这里,是如何在 Linux 机器上使用 HAProxy 设置反向代理。
首先,haproxy从Linux终端安装
apt update && apt install haproxy
然后导航到文件夹 /etc/haproxy
cd /etc/haproxy
将默认配置文件重命名为 haproxy.cfg.backup
mv haproxy.cfg{,.backup}
现在,创建一个新的配置文件, haproxy.cfg
nano haproxy.cfg
加上下面的内容,然后保存修改。
global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
stats socket /run/haproxy/admin.sock mode 660 level admin expose-fd listeners
stats timeout 30s
user haproxy
group haproxy
daemon
defaults
log global
mode http
timeout connect 5000
timeout client 50000
timeout server 50000
frontend api_proxy
bind *:8080
mode http
default_backend remote_api_server
backend remote_api_server
#replace 10.10.10.10 with the actual Ip address
server server1 10.10.10.10:443 ssl
Run Code Online (Sandbox Code Playgroud)
替换10.10.10.10为 API 提供者 IP 地址,使用实际端口替换443。
如果 API 未使用 HTTPS,请删除该ssl选项
8080是您的用户将连接到的端口。更改为您想要的任何内容。
现在,使用以下命令启动 haproxy:
haproxy -D -f haproxy.cfg
您可以验证 haproxy 是否正在侦听端口 8080
telnet localhost 8080
将您的应用配置为通过代理 URL 调用充值 API,即:
http://your_server_ip_address:8080/your/api/url
不过,您需要在生产环境中配置 HTTPS。
检查下面的链接,了解如何使用 haproxy 配置 SSL
如果这有帮助,请告诉我。
| 归档时间: |
|
| 查看次数: |
4304 次 |
| 最近记录: |