Ich wollte einen kleinen Mock-Server, der nur den HTTP-Anforderungsheader in die Antwort einbettet und ihn zurückgibt, wenn er den Betrieb von proxy_pass von nginx überprüft.
In Bezug auf einfache HTTP-Server reicht der Einzeiler von Python nur für die statische Dateiverteilung aus.
$ sudo python -m SimpleHTTPServer 80
Dieses Mal wollte ich den HTTP-Anforderungsheader in den Hauptteil der Antwort einbetten und ihn zurückgeben, also schrieb ich ein einfaches Python-Skript. Übrigens ist Python in Python implementiert, da es standardmäßig in vielen Linux-Distributionen enthalten ist und nur mit der Standardbibliothek und ohne zusätzliche abhängige Module ausgeführt werden kann. Python ist übrigens 2.7 Serie.
$ python --version
Python 2.7.12
Erstellen Sie ein solches Skript mit dem Namen "mock_server.py".
mock_server.py
#!/usr/bin/env python
from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler
class RequestHandler(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.send_header("Content-type", "text/plain")
self.end_headers()
self.wfile.write('%s %s %s\n' % (self.command, self.path, self.request_version))
self.wfile.write(self.headers)
self.finish()
self.connection.close()
port = 80
server = HTTPServer(('', port), RequestHandler)
server.serve_forever()
Wird über sudo ausgeführt, um Port 80 bequem abhören zu können.
$ sudo python mock_server.py
Versuchen Sie es mit Locken.
$ curl -H "Host: hoge.example.com" -H "X-MOCK-PROXY-PASS: hoge.example.com" http://127.0.0.1/hoge
GET /hoge HTTP/1.1
Host: hoge.example.com
User-Agent: curl/7.47.1
Accept: */*
X-MOCK-PROXY-PASS: hoge.example.com
Wenn Sie nginx, das Sie testen möchten, dazwischen legen und es wie curl => nginx => Mock-Server konfigurieren, können Sie sehen, ob der erwartete HTTP-Header übergeben wird, und wenn Sie den entsprechenden Header für das Debuggen eingeben, welchen Speicherort Ich habe das Gefühl, ich kann leicht testen, ob proxy_pass fertig ist.
Recommended Posts