使用nginx代理进行Tornado运行测试

使用nginx代理进行Tornado运行测试,nginx,proxy,lua,tornado,Nginx,Proxy,Lua,Tornado,我使用Tornado并编写了一些测试。一切都很好 然后我使用nginx作为代理: server { listen 80; server_name mine.local; location / { proxy_pass http://localhost:8000; } } 很好用。但是 在测试中,我使用AsyncHTTPTestCase和get\u app方法,该方法返回应用程序 问题是:测试默认127.0.0.1:8000上的“外观”-Tornad

我使用Tornado并编写了一些测试。一切都很好

然后我使用nginx作为代理:

server {
    listen 80;
    server_name mine.local;
    location / {

      proxy_pass http://localhost:8000;
    }
}
很好用。但是

在测试中,我使用
AsyncHTTPTestCase
get\u app
方法,该方法返回应用程序

问题是:测试默认127.0.0.1:8000上的“外观”-Tornado从端口8000开始,所有
self.app.reverse\u url('name')
返回127.0.0.1:8000/path

但是我需要,来自测试的所有请求都要转到nginx(代理):

矿山.本地/路径

主机中我有:

mine.local      127.0.0.1
在nginx中,我使用了一些lua脚本,它们完成了所有的脏活。所以我需要,测试在mine.local上发出请求,而不是默认的127.0.0.1:8000

如何做到这一点

谢谢

def bind_unused_port():
    """Binds a server socket to an available port on localhost.

    Returns a tuple (socket, port).
    """
    [sock] = netutil.bind_sockets(8000, 'localhost', family=socket.AF_INET)
    port = sock.getsockname()[1]
    return sock, port

class MineTestCase(AsyncHTTPTestCase):
    def setUp(self):
        super(AsyncHTTPTestCase, self).setUp()
        sock, port = bind_unused_port()
        self.__port = port

        self.http_client = self.get_http_client()
        self._app = self.get_app()
        self.http_server = self.get_http_server()
        self.http_server.add_sockets([sock])

    def get_url(self, path):
        url = '%s://%s:%s%s' % (self.get_protocol(), 'mine.local',
                                80, path)
        return url