![对于 Apache 代理来说,uwsgi 协议相对于 http 有什么优势?](https://linux22.com/image/773973/%E5%AF%B9%E4%BA%8E%20Apache%20%E4%BB%A3%E7%90%86%E6%9D%A5%E8%AF%B4%EF%BC%8Cuwsgi%20%E5%8D%8F%E8%AE%AE%E7%9B%B8%E5%AF%B9%E4%BA%8E%20http%20%E6%9C%89%E4%BB%80%E4%B9%88%E4%BC%98%E5%8A%BF%EF%BC%9F.png)
我刚刚在 Apache 服务器后面设置了几个 WSGI 应用程序,这些应用程序使用同一主机上的 UNIX 套接字代理到 uwsgi。通常宣传的实现方法似乎是这样的:
Apache config:
ProxyPass / unix:/var/lib/uwsgi/app1.sock|uwsgi://uwsgi-uds-app1/
uwsgi .ini
socket = /var/lib/uwsgi/app1.sock
我做了一些不同的事情:
Apache config:
ProxyPass / unix:/var/lib/uwsgi/app1.sock|http://127.0.0.1/
uwsgi .ini
http-socket = /var/lib/uwsgi/app1.sock
因此,在我的设置中,Apache 和 uwsgi 基本上使用 http 而不是 uwsgi 的本机协议进行通信。对我来说,这样做的好处是,我省去了一个额外的依赖项 (mod_proxy_uwsgi),并且能够使用 curl --unix-socket 直接与 uwsgi 服务器通信,从而更容易调试整个设置
那么使用 uwsgi 协议有什么好处呢?如果只是性能方面的问题 —— 对于我的小容量应用程序来说没问题。
答案1
mod_proxy_uwsgi 几年前就已经包含在 apache2 中了,所以不应该是“额外的依赖”。
是的,将 http 替换为uWSGI 协议(就其本身而言)只是一种效率优势。uWSGI 的其他部分(例如使用 UNIX 套接字)提供了安全性优势。您确实可以将设置配置为较弱的优化 - 但正如最初提到的那样,在我看来,您这样做的理由已经过时了。