在内部网络上运行 rails 应用程序,可以访问外部表单



我目前正在做一个rails项目,该项目将部署在大型企业的内部网络上。它仅供内部使用。但是,此项目的功能要求之一是外部非用户可以接收带有 URL/令牌的电子邮件,该 url/令牌将他们带到一个表单,以便从网络外部向应用程序的数据库提供信息。解决这个问题的最好方法是什么,或者甚至有可能吗?

如果希望应用仅是内部应用,则应在同一网络中创建另一个具有外部可见性的应用,并且可以在两者之间与内部应用进行通信,可能通过 API。

希望这能给你一些想法。

应该可以从 Rails 项目中限制对任何给定路由或控制器操作的访问(Rack 请求对象包含生成请求的 IP),但更好的方法是利用反向代理中的功能。 如果您使用的是nginx,请参阅此页面。 你应该能够在你的nginx.conf中设置这样的东西:

location / {
    allow 192.168.1.1/24; # or whatever IP range you want to permit through
    allow 127.0.0.1;      # for local development
    deny all;             # block everyone else
    ... # the reset of your app config
}
location /path-to-external-form {
    allow all;
}

当然,建立一个单独的应用程序并共享一个数据库可能会更容易。

最新更新