今天介绍一下如何在ubuntu18.04中为django项目搭建nginx+gunicorn环境。

具体步骤如下:
1.安装gunicorn: pip install gunicorn
2.使用gunicorn启动django项目: gunicorn 项目名称.wsgi:application –bind 127.0.0.1:8000
3.安装并配置nginx:
编译安装时,在安装nginx前,需要先安装其他几个软件包,具体安装如下:
1)安装openssl:

wget https://www.openssl.org/source/openssl-1.1.0e.tar.gz
tar zxvf openssl-1.1.0e.tar.gz

解压完成后,进入openssl所在目录,依次执行./config、make和make install进行安装;

2)安装zlib:

wget https://downloads.sourceforge.net/project/libpng/zlib/1.2.11/zlib-1.2.11.tar.gz
tar zxvf zlib-1.2.11.tar.gz

解压完成后,进入zlib所在目录,依次执行./configure、make和make install进行安装;

3)安装pcre:

wget https://ftp.pcre.org/pub/pcre/pcre-8.40.tar.gz
tar zxvf pcre-8.40.tar.gz

解压完成后,进入pcre所在目录,依次执行./configure、make和make install进行安装;

当然,以上软件包还可以下载并安装其他版本。

4)安装nginx,可以点击 http://nginx.org/en/download.... 来下载你需要的nginx版本。下载完成后,使用tar命令解压: tar zxvf nginx-1.14.0.tar.gz
解压完成后进入nginx目录,执行以下命令进行配置:

./configure --with-http_ssl_module --with-cc-opt="-Wno-error" --with-pcre=/home/wyzane/install_package/pcre-8.40 --with-zlib=/home/wyzane/install_package/zlib-1.2.11 --with-openssl=/home/wyzane/install_package/openssl-1.1.0e

以上配置中,我将软件包都安装在了/home/wyzane/install_package/目录下,也可以安装在其他目录中。
执行以上配置后,我在编译(make)时遇到了一个错误,错误信息大致如下:

src/core/ngx_murmurhash.c:37:11: error: this statement may fall through [-Werror=implicit-fallthrough

后来在 https://trac.nginx.org/nginx/ 中找到了解决办法,即在执行./configure时加上 –with-cc-opt=”-Wno-error” 这个参数。
以后再安装nginx遇到问题时,都可以取上面那个网站寻找解决方案。

执行完./configure后,再执行make和make install进行编译和安装。
安装完成后,即可启动ngin并访问nginx首页验证是否安装成功。

4.配置nginx: 进入nginx.conf文件中修改配置
配置下面的部分即可:

server {
        listen       80;
        server_name  192.168.114.113;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
             proxy_pass http://192.168.114.113:8000;
             proxy_set_header Host $host;
             proxy_set_header X-Real-IP $remote_addr;
             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }

        location /static {
             alias /home/wyzane/pyprojects/test/test/static;
        }
}

主要配置listen,server_name,location / 和location /static
listen是需要监听的端口,server_name是gunicorn启动后服务器的ip,location /指定根路径,location /static指定静态文件路径

5.配置完nginx后,搜集静态文件: python manage.py collectstatic
6.启动nginx和gunicorn,即可访问项目。


wyzane
88 声望5 粉丝

致力于分享高质量后端代码。