Kapag ang isang HTTP proxy pasulong trapiko sa isang webserver, nakikita ang server ng proxy IP address sa halip na ang mga orihinal na client IP address. Dahil maaaring kailangan ang server IP address para sa pag-log in o authentication layunin, maraming mga HTTP proxy magdagdag ng isang X-Ipinasang-Para header na nagpapahiwatig sa orihinal na client IP address.
WsgiUnproxy ay isang WSGI middleware na maupo sa pagitan ng mga WSGI server at ang iyong WSGI application. & Nbsp; Bago nakikita ang iyong application ng isang kahilingan, WsgiUnproxy nagtanggal ng X-Ipinasang-Para header at ibinalik ng client IP address, mapagbigay ng isang kahilingan na ang mukhang ito ay hindi kailanman proxied upang magsimula sa.
Dahil kahit sino ay maaaring magdagdag ng isang X-Ipinasang-Para header, WsgiUnproxy gumagamit lamang ng header kung ito ay mula sa isang pinagkakatiwalaang proxy IP address.
Halimbawa WSGI application
mula wsgiunproxy import unproxy
unproxy (trusted_proxies = ['1.2.3.4', '5.6.7.8'])
def application (ilagay sa kapaligiran, start_response):
& Nbsp; start_response ('200 OK', [])
& Nbsp; bumalik ['Ang iyong IP address ay% s.' % Environ.get ('REMOTE_ADDR')]
Gamitin sa Paki Deployment
Maaari WsgiUnproxy maaaring gamitin sa isang Paki Deployment tubo:
[Tubo: main]
tubo =
& Nbsp; WsgiUnproxy
& Nbsp; MyApp
[Filter: WsgiUnproxy]
gamitin = itlog: WsgiUnproxy
trusted_proxies = 1.2.3.4, 5.6.7.8
Advanced na paggamit
Kung kailangan mong tukuyin ang isang pulutong ng mga pinagkakatiwalaang mga proxies (tulad ng isang buong subnet), hindi mo na kailangang gumamit bigyan trusted_proxies bilang isang listahan. Lahat na WsgiUnproxy nagtatanong ay na trusted_proxies sumusuporta sa mga in operator (halimbawa, sa pamamagitan ng pagpapatupad ng __contains __)
Kinakailangan .
- sawa
Mga Komento hindi natagpuan