heroku - aws - ip de amazon
Dirección IP estática con Heroku(no Proximo) (3)
¿Hay alguna manera de obtener una dirección IP estática para un servidor Heroku? Estoy tratando de integrar varias API que piden una dirección IP. Debido a la configuración del servidor de Heroku, nunca tienes un servidor con IP estática, sino que tu IP es dinámica.
He analizado complementos como Proximo, sin embargo, parece ser una solución paga. ¿Hay alguna solución en la que tengas una IP estática por la que no tienes que pagar?
Puede usar complemento QuotaGuard Static Heroku.
QuotaGuard se puede adjuntar a una aplicación Heroku a través de la línea de comando:
$ heroku addons:add quotaguardstatic
Después de la instalación, la aplicación debe configurarse para integrarse completamente con el complemento. Cuando se registre, se le proporcionará un nombre de usuario y una contraseña únicos que podrá usar al configurar su servicio de proxy en su aplicación
Una configuración QUOTAGUARDSTATIC_URL estará disponible en la configuración de la aplicación y contendrá la URL completa que debe usar para proxy sus solicitudes API. Esto se puede confirmar con el siguiente comando:
$ heroku config:get QUOTAGUARDSTATIC_URL
http://user:[email protected]:9293
Todas las solicitudes que realice a través de este proxy aparecerán en el servidor de destino para originarse desde una de las dos IP estáticas que se le asignará cuando se registre.
Puede usar un cliente HTTP y REST simple para Ruby para detectar su IP:
$ gem install rest-client
A continuación, puede ejecutar el siguiente ejemplo en una sesión de IRB y verificar que la IP final devuelta sea una de sus dos direcciones IP estáticas.
$ irb
>require "rest-client"
>RestClient.proxy = ''http://user:[email protected]:9293''
>res = RestClient.get("http://ip.jsontest.com")
Eso es:)
Puedes usar Nginx como tu proxy de reserva. Edite su nginx.conf y configure proxy_pass. Asegúrate de establecer proxy_set_header en tu herokuapp
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’;
}
}
Fixie es otra opción. Fixie es un complemento que proporciona a las aplicaciones Heroku un conjunto fijo de direcciones IP estáticas para solicitudes de salida. Es lenguaje y marco agnóstico.
Fixie es fácil de configurar y tiene una documentación de "inicio" (similar a la de Python a continuación) para Ruby, Node, Java, Go here . Aquí está el de Python.
Primero necesita inscribirse en el plan gratuito:
$ heroku addons:open fixie
Opening fixie for sharp-mountain-4005…
A continuación, se establecerá FIXIE_URL
como variable de entorno. Para enrutar una solicitud específica a través de Fixie mediante 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)
Usando urllib2
la misma funcionalidad se verá así:
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()
En ambos casos, estas solicitudes vendrían a través de una dirección IP conocida asignada por Fixie.