Gunicorn(绿色独角兽)是一个Python WSGI的HTTP服务器。从Ruby的独角兽(Unicorn )项目移植。该Gunicorn服务器与各种Web框架兼容,实现非常简单,轻量级的资源消耗。Gunicorn直接用命令启动,不需要编写配置文件,相对uWSGI要容易很多。
安装gunicorn
pip install gunicorn
查看命令行选项: 安装gunicorn成功后,通过命令行的方式可以查看gunicorn的使用信息。
gunicorn -h
usage: gunicorn [OPTIONS] [APP_MODULE]
optional arguments:
-h, --help show this help message and exit
-v, --version show program's version number and exit
--access-logfile FILE
The Access log file to write to. [None]
--log-level LEVEL The granularity of Error log outputs. [info]
--capture-output Redirect stdout/stderr to specified file in
:ref:`errorlog`. [False]
--log-config FILE The log config file to use. [None]
--log-syslog-to SYSLOG_ADDR
Address to send syslog messages. [udp://localhost:514]
--log-syslog-facility SYSLOG_FACILITY
Syslog facility name [user]
--access-logformat STRING
The access log format. [%(h)s %(l)s %(u)s %(t)s
"%(r)s" %(s)s %(b)s "%(f)s" "%(a)s"]
--cert-reqs CERT_REQS
Whether client certificate is required (see stdlib ssl
module's) [0]
--check-config Check the configuration. [False]
--limit-request-line INT
The maximum size of HTTP request line in bytes. [4094]
-k STRING, --worker-class STRING
The type of workers to use. [sync]
--error-logfile FILE, --log-file FILE
The Error log file to write to. [-]
--spew Install a trace function that spews every line
executed by the server. [False]
--certfile FILE SSL certificate file [None]
--paste-global CONF Set a PasteDeploy global config variable in
``key=value`` form. [[]]
--threads INT The number of worker threads for handling requests. # 线程数
[1]
--max-requests-jitter INT
The maximum jitter to add to the *max_requests*
setting. [0]
--preload Load application code before the worker processes are
forked. [False]
--disable-redirect-access-to-syslog
Disable redirect access logs to syslog. [False]
--log-syslog Send *Gunicorn* logs to syslog. [False]
--forwarded-allow-ips STRING
Front-end's IPs from which allowed to handle set
secure headers. [127.0.0.1]
--suppress-ragged-eofs
Suppress ragged EOFs (see stdlib ssl module's) [True]
--reload-engine STRING
The implementation that should be used to power
:ref:`reload`. [auto]
--log-config-dict LOGCONFIG_DICT
The log config dictionary to use, using the standard
Python [{}]
--max-requests INT The maximum number of requests a worker will process
before restarting. [0]
--log-syslog-prefix SYSLOG_PREFIX
Makes Gunicorn use the parameter as program-name in
the syslog entries. [None]
--backlog INT The maximum number of pending connections. [2048]
-t INT, --timeout INT
Workers silent for more than this many seconds are
killed and restarted. [30]
-e ENV, --env ENV Set environment variable (key=value). [[]]
--proxy-allow-from PROXY_ALLOW_IPS
Front-end's IPs from which allowed accept proxy
requests (comma separate). [127.0.0.1]
-c CONFIG, --config CONFIG
The Gunicorn config file. [None]
--ssl-version SSL_VERSION
SSL version to use (see stdlib ssl module's)
[_SSLMethod.PROTOCOL_SSLv23]
--worker-connections INT
The maximum number of simultaneous clients. [1000]
--do-handshake-on-connect
Whether to perform SSL handshake on socket connect
(see stdlib ssl module's) [False]
--reuse-port Set the ``SO_REUSEPORT`` flag on the listening socket.
[False]
-R, --enable-stdio-inheritance
Enable stdio inheritance. [False]
--no-sendfile Disables the use of ``sendfile()``. [None]
--chdir CHDIR Chdir to specified directory before apps loading.
[/home/wyh]
-D, --daemon Daemonize the Gunicorn process. [False]
-u USER, --user USER Switch worker processes to run as this user. [1000]
--limit-request-field_size INT
Limit the allowed size of an HTTP request header
field. [8190]
--worker-tmp-dir DIR A directory to use for the worker heartbeat temporary
file. [None]
-g GROUP, --group GROUP
Switch worker process to run as this group. [1000]
-m INT, --umask INT A bit mask for the file mode on files written by
Gunicorn. [0]
--initgroups If true, set the worker process's group access list
with all of the [False]
--paste STRING, --paster STRING
Load a PasteDeploy config file. The argument may
contain a ``#`` [None]
--reload-extra-file FILES
Extends :ref:`reload` option to also watch and reload
on additional files [[]]
--keyfile FILE SSL key file [None]
-w INT, --workers INT # 进程数
The number of worker processes for handling requests.
[1]
--graceful-timeout INT
Timeout for graceful workers restart. [30]
--ca-certs FILE CA certificates file [None]
--logger-class STRING
The logger you want to use to log events in Gunicorn.
[gunicorn.glogging.Logger]
--ciphers CIPHERS Ciphers to use (see stdlib ssl module's) [TLSv1]
--limit-request-fields INT
Limit the number of HTTP headers fields in a request.
[100]
--reload Restart workers when code changes. [False]
--statsd-host STATSD_ADDR
``host:port`` of the statsd server to log to. [None]
-b ADDRESS, --bind ADDRESS # 绑定ip:端口
The socket to bind. [['127.0.0.1:8000']]
--statsd-prefix STATSD_PREFIX
Prefix to use when emitting statsd metrics (a trailing
``.`` is added, []
-p FILE, --pid FILE A filename to use for the PID file. [None]
--pythonpath STRING A comma-separated list of directories to add to the
Python path. [None]
--proxy-protocol Enable detect PROXY protocol (PROXY mode). [False]
--keep-alive INT The number of seconds to wait for requests on a Keep-
Alive connection. [2]
-n STRING, --name STRING
A base to use with setproctitle for process naming.
[None]
直接运行:
# 基本启动
$gunicorn -w 4 --threads 10 -b 127.0.0.1:5001 运行文件名称:Flask程序实例名
cd toutiao
gunicorn -w 4 -b 127.0.0.1:5001 toutiao.main:app