配置文件如下:
[uwsgi]
socket=外网 ip:端口(使用 nginx 连接时,使用 socket )
http=外网 ip:端口(直接做 web 服务器,使用 http )
chdir=项目根目录
wsgi-file=项目中 wsgi.py 文件的目录,相对于项目根目录
processes=4
threads=2
master=True
pidfile=uwsgi.pid
daemonize=uswgi.log
为什么
使用 nginx 连接时,使用 socket,直接做 web 服务器,使用 http
使用 nginx 的时候,用 socket 原因是什么呢, 可以用 http 吗
1
julyclyde 2018-05-14 22:10:11 +08:00 1
可以
|
2
twor 2018-05-14 22:48:25 +08:00 1
新手勉强回答一下
socket=外网 ip:端口(使用 nginx 连接时,使用 socket ) -- 也可以 http-socket 吧。 我配置都是用 socket file,感觉上效率更高 http=外网 ip:端口(直接做 web 服务器,使用 http ) -- 直接把 uWSGI 作为 http 服务器,不需要 nginx 了 参考 http://uwsgi-docs.readthedocs.io/en/latest/HTTP.html?highlight=http |
3
patx 2018-05-14 22:58:34 +08:00 1
unix socket 好一点吧,nginx 和 uwsgi 进程间直接通信
http, http socket 效率低一点,为了安全,中间会有一些校验和路由 |
4
FindHao 2018-05-14 22:58:44 +08:00 via Android 1
我们的 uWSGI 是通过网络端口暴露出来的,但是由于后面我们将使用 nginx 来处理实际的 client 连接,然后传递给 uwsgi,而由于这些操作都是在一个机器上运行的,因此这里我们改成 socket 的模式更安全快速。我们指定 socket 文件是当前项目目录下的 myproject.sock。
https://www.findhao.net/easycoding/2218 |
5
ybping 2018-05-14 23:16:15 +08:00 via iPhone
socket 性能更好
|
6
XiaoxiaoPu 2018-05-15 01:16:11 +08:00 via iPhone
unix socket 确实性能好一点,但是你们确实不用考虑多机部署?
|
7
ericls 2018-05-15 03:00:26 +08:00 via iPhone
@XiaoxiaoPu 多机部署就多个 nginx 咯?
|
8
geeklian 2018-05-15 07:59:22 +08:00 via Android
socket 和 http 肯定不一样啦...
socket 传递的是二进制数据包,然后 nginx 将写在 uwsg_params 的信息当环境变量传递给 uwsgi。 http 传递的超文本数据包,nginx 将原本的 http 信息和 http_proxy 配置的信息糅合在一起重新打包 http,传递给 uwsgi。 实际使用上的区别,比如获取客户端的 ip 地址,socket 通过 REMOTE_ADDR,http 就要通过 nginx 里配置定义的 x_forwared-for 之类的了。 至于性能,其实没太大区别。理论上 socket 比 http 强,但业务逻辑和 orm 使用还是影响性能的大头。 我喜欢用 http,因为内网 nginx 和 django+uwsgi 不在一个服务器上,配置 http 可以直接连 app 服务器测试。备机防火墙打掉到 nginx 的连接,就可以直接当测试机用了。当然这是在管理很随意的非互联网企业的操作。 |
9
ycz0926 2018-05-15 08:59:12 +08:00
你是要做成分布式的?
|
10
XiaoxiaoPu 2018-05-15 13:25:22 +08:00
@ericls 一个机器宕机了靠 DNS 来切换么?那样生效太慢了啊
|
11
234747005 2018-05-15 16:07:43 +08:00
换做是我就会考虑直接用 haproxy 做 tcp 代理,放弃用 nginx。
|
12
RicardoScofileld 2018-05-15 18:30:53 +08:00
主要 nginx 负载均衡,uwsgi 一个挂了,还能分配到其他上
|
13
ericls 2018-05-16 00:43:31 +08:00 via iPhone
@XiaoxiaoPu load balancer
|
14
XiaoxiaoPu 2018-05-16 01:05:31 +08:00
@ericls 那不如 load balancer 直连 uwsgi
|