Je voulais un petit serveur simulé qui intègre simplement l'en-tête de la requête HTTP dans la réponse et le renvoie lors de la vérification du fonctionnement de proxy_pass de nginx.
En parlant de serveurs HTTP simples, le one-liner de python suffit pour la distribution de fichiers statiques,
$ sudo python -m SimpleHTTPServer 80
Cette fois, je voulais intégrer l'en-tête de la requête HTTP dans le corps de la réponse et le renvoyer, j'ai donc écrit un simple script python. À propos, python est implémenté en python car il est inclus dans de nombreuses distributions Linux par défaut et peut être fait avec uniquement la bibliothèque standard et aucun module dépendant supplémentaire. À propos, python est une série 2.7.
$ python --version
Python 2.7.12
Créez un script comme celui-ci avec le nom 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()
Exécutez via sudo pour la commodité d'écouter le port 80.
$ sudo python mock_server.py
Essayez curl.
$ 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
Si vous mettez nginx que vous souhaitez tester entre les deux et que vous le configurez comme curl => nginx => serveur simulé, vous pouvez voir si l'en-tête HTTP attendu est passé et si vous remplissez l'en-tête approprié pour le débogage, quel emplacement J'ai l'impression de pouvoir facilement tester si proxy_pass en a terminé avec.
Recommended Posts