V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  zhengxiaowai  ›  全部回复第 55 页 / 共 69 页
回复总数  1377
1 ... 51  52  53  54  55  56  57  58  59  60 ... 69  
熟悉 Django、Python、AWS,工作不够三年哈哈哈,少见强制工作年限的,话说钱确实有点少。
2017-07-25 16:29:20 +08:00
回复了 piaochen 创建的主题 Python 对 Python IDE 自动补全功能的疑问
没办法,Python 是动态的,和静态不一样,IDE 做不到那么智能。

API 不熟悉的话也没什么好办法,一般就 google 或者直接看源码导出那些接口。。。。
2017-07-25 10:32:34 +08:00
回复了 assad 创建的主题 程序员 我对 Python 的困惑
在现在这种硬件不值钱的时代,人工效率明显更重要,性能不够加机器,还不够上集群,还不够关掉 GC 上 JIT。你要和我说 PHP Web 上性能有多好,我是万万不会相信的,反正不能快过 Node,这是其一。

其二无论大小公司对于快速产出都是很重要的,比起性能什么不知道重要百倍,所有性能好的都是一步一步优化而来。

其三性能测试测试 Hello World 是最笨的做法,然而我见过很多根本不会写 Tornado 人,硬生生写成了同步的 Tornado。

其四一个项目都到了考虑性能的地步,不会单单是由一个东西组成,所以抛开架构谈一个项目的性能问题太过片面。

其五 Python 作为瑞士军刀语言在 Web 只是其中的一部分,虽然是比重比较大的。但是和 PHP 这种除了 Web 很难再其他地方使用的语言没法比较。

其六你对 Python 理解的明显不深刻,虽然 PHP 是世界上最好的语言,比心!
放心,被恶意攻击提交给 AWS 客服会给你免除费用的。我们好几百台服务器都没有限速。

另外控制好你的端口,就是的安全组,只打开你需要的端口,很多不安全因素都是来自使用者自身的疏忽大意
2017-07-24 11:11:11 +08:00
回复了 jlsk 创建的主题 Python 元组就是不可修改的列表,可以这样说吗?
可以但是不完整
@mlyy uwsgi 是同步的,异步的可以选择 gunicorn gevent 部署
tornado 自带 websocket 特别简单,以前用 websocket 做过一个实时日志
内存必须 32G
话说回复不支持 markdown 啊?
首先你要明确几个概念及其作用(注意大小写的区别):

- WSGI
- uWSGI
- uwsgi
- Nginx

WSGI 是一种协议,不是任何包不是任何服务器,就和 TCP 协议一样。它定义了 Web 服务器和 Web 应用程序之前如何通信的规范。

至于为什么和 Python 扯在一起?因为这个协议是由 Python 在 2003 年提出的。(参考:PEP-333 和 PEP-3333 )

> WSGI is the Web Server Gateway Interface. It is a specification that describes how a web server communicates with web applications, and how web applications can be chained together to process one request.

uWSGI 是一个全功能的 HTTP 服务器,他要做的就是把 HTTP 协议转化成语言支持的网络协议。比如把 HTTP 协议转化成 WSGI 协议,让 Python 可以直接使用。

> The uWSGI project aims at developing a full stack for building hosting services.
>
> Application servers (for various programming languages and protocols), proxies, process managers and monitors are all implemented using a common api and a common configuration style.

uwsgi 是一种 uWSGI 的内部协议,使用二进制方式和其他应用程序进行通信。

> The uwsgi (lowercase!) protocol is the native protocol used by the uWSGI server.
>
> It is a binary protocol that can carry any type of data. The first 4 bytes of a uwsgi packet describe the type of the data contained by the packet.

Nginx 是一个 Web 服务器其中的 HTTP 服务器功能和 uWSGI 功能很类似,但是 Nginx 还可以用作更多用途,比如最常用的反向代理功能。

所以用一张图来描述一下这个过程:

![]( https://cdn.hexiangyu.me/images/WSGI%20%E7%A8%8B%E5%BA%8F%E9%83%A8%E7%BD%B2%E6%A0%88.png)

**接下是为什么不能用 Django 的 Web 服务器直接部署**

Django 是一个 Web 框架,框架的作用在于处理 request 和 reponse,其他的不是框架所关心的内容。所以怎么部署 Django 不是 Django 所需要关心的。

Django 所提供的是一个开发服务器,这个开发服务器,没有经过安全测试,而且使用的是 Python 自带的 simple HTTPServer 创建的,在安全性和效率上都是不行的。

> DO NOT USE THIS SERVER IN A PRODUCTION SETTING. It has not gone through security audits or performance tests.

在 Django 源码中可以很清楚的看出来,runserver 起来的 HTTPServer 就是 Python 自带的 simple_server。

> 以下是最新版本 Django 有关 runserver command 的代码节选

- [django.core.management.commands.runserver.Command:run]( https://github.com/django/django/blob/master/django/core/management/commands/runserver.py#L100-L107)
- [django.core.management.commands.runserver.Command:inner_run]( https://github.com/django/django/blob/master/django/core/management/commands/runserver.py#L141-L142)

其中 inner_run 函数中的 run 方法和 run 方法中 server_cls 参数分别取自 [django.core.servers.basehttp:run]( https://github.com/django/django/blob/master/django/core/servers/basehttp.py#L164-L180) 和 [django.core.servers.basehttp:WSGIServer]( https://github.com/django/django/blob/master/django/core/servers/basehttp.py#L57-L73)

而 WSGIServer 又的父类就是 wsgiref.simple_server。既然是 simple 了很多东西都是不太可以的。

**既然 uWSGI 可以完成 Nginx 功能,那为什么又要用 Nginx**

因为 Nginx 牛逼啊,能直接在 Ninx 层面就完成很多事情,比如静态文件、反向代理、转发等需求。

## 参考

- [WSGI 官方文档]( https://wsgi.readthedocs.io/en/latest/index.html)
- [uWSGI 官方文档]( http://uwsgi-docs.readthedocs.io/en/latest/index.html)
- [Django django-admin runserver]( https://docs.djangoproject.com/en/1.11/ref/django-admin/#runserver)
2017-07-17 13:21:59 +08:00
回复了 4ever911 创建的主题 Linux Linux 的更新什么时候需要重新启动系统?
@lechain 内核热替换和软件热替换是两个东西,要你的服务支持热替换才可以
上班为什么要上淘宝,哈哈哈
2017-07-17 10:24:44 +08:00
回复了 4ever911 创建的主题 Linux Linux 的更新什么时候需要重新启动系统?
不用,内核都可以热替换。

但是你懂的,服务器都要隔一段时间重启一次最好,可能是玄学吧,哈哈哈。参考 上次的 s3 事件
就不能用 MYSQL 么、。
2017-07-12 10:04:57 +08:00
回复了 zhengxiaowai 创建的主题 程序员 这种明目张胆的盗版书 Github repo 怎么怼
@mrcode @Jiavan
不客气
2017-07-11 11:11:29 +08:00
回复了 ntmyjk 创建的主题 程序员 公司换了领导,而我的工作发生了翻天覆地的变化
5 年了,给你什么头衔了吗?起码是个组长之类的把
别投入太多感情在公司,原因你懂的
2017-07-11 11:07:42 +08:00
回复了 zhengxiaowai 创建的主题 程序员 这种明目张胆的盗版书 Github repo 怎么怼
@DiamondY fork 后人家依然可以看到,当然最好不要,然后又来留言说 fork 了,那就比较过分了吧。

还有想看的话 clone 自己留下来不行么?
1 ... 51  52  53  54  55  56  57  58  59  60 ... 69  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3880 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 54ms · UTC 10:25 · PVG 18:25 · LAX 03:25 · JFK 06:25
Developed with CodeLauncher
♥ Do have faith in what you're doing.