Soru Heroku ile Statik IP Adresi (Proximo değil)


Bir Heroku Server için bir Statik IP adresi almanın bir yolu var mı? IP adresi isteyen çeşitli API'ları entegre etmeye çalışıyorum. Heroku'nun sunucu kurulumu nedeniyle, hiçbir zaman statik IP'ye sahip bir sunucunuz olmaz - bunun yerine IP'niz dinamiktir.

Proximo gibi eklentilere baktım, ancak bu ödeme için ödenmiş bir çözüm gibi görünüyor. Ödemeniz gereken bir statik IP'ye sahip olduğunuz bir çözüm var mı?


26
2017-12-14 10:03


Menşei


Böyle bir seçenek olduğunu düşünmüyorum. Heroku'nun sadece bir avuç IP'si var ve bunlar http yönlendiricilerine eşleştiriliyor. Belki de senin için çalışabilecek geçici çözümler var. Hangi API'lar ve tam olarak neye ihtiyaç duyarlar? - Nitzan Shaked
Sonunda ne kullandın? Alt alan olarak kullanılan bir VPS'yi, sadece özel bir IP'ye ihtiyacınız olan şeyler için bir yere koymak daha kolay olmaz mıydı? Kendimi aynı soruyu merak ediyorum (Heroku'ya geçiyorum ve e-posta ihtiyaçları için özel bir IP'ye ihtiyacım var.) - Fabien Snauwaert


Cevaplar:


Kullanabilirsiniz QuotaGuard Statik Heroku eklentisi.

QuotaGuard, komut satırından bir Heroku uygulamasına eklenebilir:

$ heroku addons:add quotaguardstatic

Yükledikten sonra, uygulama eklenti ile tam olarak entegre olacak şekilde yapılandırılmalıdır. Kayıt olduğunuzda, proxy hizmetinizi uygulamanızda yapılandırırken kullanabileceğiniz benzersiz bir kullanıcı adı ve şifre sağlanacaktır.

Uygulama yapılandırmasında bir QUOTAGUARDSTATIC_URL ayarı bulunur ve API isteklerinizi proxy için kullanmanız gereken tam URL'yi içerecektir. Bu, bir sonraki komut kullanılarak onaylanabilir:

$ heroku config:get QUOTAGUARDSTATIC_URL
http://user:pass@static.quotaguard.com:9293 

Bu vekil aracılığıyla yaptığınız tüm istekler, kayıt olduğunuzda atanacak olan iki statik IP'den birinden gelen hedef sunucuya görünecektir.

IP'nizi algılamak için Ruby için basit bir HTTP ve REST istemcisi kullanabilirsiniz:

$ gem install rest-client

Ardından, aşağıdaki örneği bir IRB oturumunda çalıştırabilir ve son IP'nin iki statik IP'nizden biri olduğunu doğrulayabilirsiniz.

$ irb

>require "rest-client"

>RestClient.proxy = 'http://user:pass@static.quotaguard.com:9293'

>res = RestClient.get("http://ip.jsontest.com")

Bu kadar:)


18
2017-12-25 23:28



Aslında Quotaguard iki ürün sunuyor ve bir Heroku eklentisi olarak mevcut olan statik IP proxy'si değil. Statik bir IP istiyorsanız, sitelerinde abonelik işlemini takip etmelisiniz: quotaguard.com/pricing#_quotaguardstatic - PEF
Her iki eklenti de şu anda Marketplace'te. Statik IP'ler için Statik Statik, Dinamik olmayan Heroku IP'leri için Kotalar. - Tim Williams
openguard (ve fixie) size iki IP verir. Sadece bir tane olabileceği zaman için bir seçenek var mı? Tüketmekte olduğum API, kayıtlı bir IP'yi şifreleyerek oluşturdukları bir erişim anahtarı gerektirir. Birden fazla IP kaydedebilirim, ancak her istek isteğin IP adresiyle eşleşen bir anahtar içermelidir. - Michael Johnston


Fixie başka bir seçenek. Fixie, Heroku uygulamalarını giden isteklere yönelik sabit bir statik IP adresi seti sağlayan bir eklentidir. Bu dil ve çerçeve-agnostiktir.

Fixie'nin kurulumu kolaydır ve Ruby, Node, Java, Go için “başlangıç” belgelerine sahiptir (aşağıdaki Python'a benzer) İşte. İşte Python için bir tane.

Öncelikle ücretsiz plana kaydolmanız gerekiyor:

$ heroku addons:open fixie
Opening fixie for sharp-mountain-4005…

Sonra FIXIE_URL ortam değişkeni olarak ayarlanacaktır. Fixie kullanarak belirli bir isteği yönlendirmek için requests:

import os, requests
proxyDict = { 
              "http"  : os.environ.get('FIXIE_URL', ''), 
              "https" : os.environ.get('FIXIE_URL', '')
            }
r = requests.get('http://www.example.com', proxies=proxyDict)

kullanma urllib2 aynı işlevsellik şöyle görünecektir:

import os, urllib2
proxy  = urllib2.ProxyHandler({'http': os.environ.get('FIXIE_URL', '')})
auth   = urllib2.HTTPBasicAuthHandler()
opener = urllib2.build_opener(proxy, auth, urllib2.HTTPHandler)
response = opener.open('http://www.example.com')
html = response.read()

Her iki durumda da, bu talepler Fixie tarafından atanan bilinen bir IP adresinden gelir.


4
2017-09-26 23:35



Bunun şu anda AB bölgesinde, sadece bölgemizde mevcut olmadığını unutmayın. - lgx


Nginx'i yedek proxy'niz olarak kullanabilirsiniz. Nginx.conf dosyanızı düzenleyin ve proxy_pass'ı ayarlayın. Proxy_set_header öğesini kahramankuapp'ınıza ayarladığınızdan emin olun

    upstream backend  {

            server xxx.talenox.com;

    }

    server {

            listen          80;

            server_name     rpb1.talenox.com;

            location / {

                    proxy_pass              http://backend;

                    proxy_redirect          off;

                    proxy_set_header        X-Forwarded-For $remote_addr;

                    proxy_set_header        Host ‘xxxxx.herokuapp.com’;

            }

    }

2
2018-01-10 09:01