我可以使用uwsgi协议来访问http?(Can I use the uwsgi protocol

2019-07-31 10:26发布

这里的一个数据流:HTTP < - > nginx的< - > uWSGI < - >蟒web应用

我想有http2uwsgi转让Nginx等uwsgi2http在uWSGI。

如果我要直接打电话uWSGI来测试web应用程序的API是什么?

其实我使用金字塔。 只是在配置.INI [uwsgi]和运行uWSGI。 但我想测试是否uWSGI保持Web应用的功能正常,该uWSGI插座是不是HTTP直接到达。

Answer 1:

尝试使用uwsgi_curl

$ pip install uwsgi-tools

$ uwsgi_curl 10.0.0.1:3030 /path

或者如果你需要做一些更多的请求尝试uwsgi_proxy来自同一个包

$ uwsgi_proxy 10.0.0.1:3030
Proxying remote uWSGI server 10.0.0.1:3030 "" to local HTTP server 127.0.0.1:3030...

这样你就可以在本地浏览它http://127.0.0.1:3030/ 。

如果你的应用程序只允许特定的Host头,你可以指定主机名以及

$ uwsgi_curl 10.0.0.1:3030 host.name/path

$ uwsgi_proxy 10.0.0.1:3030 -n host.name

如果应用程序有静态文件,您可以使用重定向这些请求到你跟前服务器-s参数。 如果需要,您也可以指定不同的本地端口。



Answer 2:

首先,考虑这些问题:

  • 在这口uWSGI运行?
  • 是uWSGI运行在您或远程机器上?
  • 如果它是一个远程计算机上运行,​​是端口从您的计算机访问? (iptables规则可能禁止外部访问)

如果你确信你有机会,你可以调用http://hostname:port/path/to/uWSGI直接API访问。



Answer 3:

从你的问题我假设,你要直接运行与uWSGI您WSGI兼容的应用程序和打开HTTP-插槽。 您可以通过配置您的uwsgi.ini(或任何文件名),这样做

http=127.0.0.1:8080

uwsgi现在打开HTTP插座上8080端口侦听传入的连接从本地主机(见文档: http://uwsgi-docs.readthedocs.org/en/latest/HTTP.html )

或者你可以直接从与HTTP参数的命令行启动过程:

$ uwsgi --http=127.0.0.1:8080 --module=yourapp:wsgi_entry_point

如果您使用UNIX的插槽配置uwsgi nginx的是能够经由uwsgi协议(即插座沟通http://uwsgi-docs.readthedocs.org/en/latest/Protocol.html )。

请记住,如果你通常是通过nginx的静态内容服务(CSS,JavaScript,图片),你将需要设置了也一样,如果你直接运行uwsgi。 但是,如果你只是想测试一个REST API这应该制定出适合您。



文章来源: Can I use the uwsgi protocol to call http?