当写完项目之后,经常需要将项目部署到网络服务器上,以便于可以随时进行访问(注意:项目部署之前要将debug改成false)。

  一般来说,部署项目到服务器需要使用中间代理服务器,一般我们使用Nginx。作为We服务器:相比Apache,Nginx使用资源更少,支持更多的并发连接,体现更高的效率,使Nginx倍受欢迎,能够支持高达50000个并发连接数的响应。作为负载均衡服务器:Nginx既可以在内部直接支持Redis和PHP,也可以支持作为HTTP代理服务器对外进行服务,Nginx使用C编写,不论是系统资源开销还是CPU使用效率都处理的非常优秀。Nginx安装非常简单,配置文件非常简洁,Bug非常少:Nginx启动非常容易,并且几乎可以做到24小时不间断运行,即使运行数个月也不需要重新启动。

  gunicorn是一个被广泛使用的高性能的Python WSGI UNIX HTTP服务器,,使用pre-fork worker模式,具有使用非常简单,轻量级的资源消耗,以及高性能等特点。

为什么要同时使用nginx和gunicorn?

  gunicorn 可以单独提供服务,但生产环境一般不这样做。首先静态资源会占用不少的请求资源,而对于 gunicorn 来讲它本身更应该关注实际业务的请求与处理而不应该把资源浪费在静态资源请求上;此外,单独运行 gunicorn 是没有办法起多个进程多个端口来负载均衡的。nginx 的作用就是弥补以上问题,首先作为前端服务器它可以处理一切静态文件请求,此时 gunicorn 作为后端服务器,nginx 将会把动态请求转发给后端服务器,因此我们可以起多个 gunicorn 进程,然后让 nginx 作均衡负载转发请求给多个 gunicorn 进程从而提升服务器处理效率与处理能力。最后,nginx 还可以配置很多安全相关、认证相关等很多处理,可以让你的网站更专注业务的编写,把一些转发规则等其它业务无关的事情交给 nginx 做。

  supervisor这东西,其实就是用来管理进程的。相对于我们linux传统的进程管理方式来说,它有很多的优势,如简单、精确、可扩展,集中式管理等等。

 

一、配置Nginx:

1、首先需要安装Nginx:sudo apt install nginx

2、在/etc/nginx/conf.d 目录下新建一个你的配置文件,如nignx.conf

3、在创建的配置文件中加入以下配置

server{
    listen 80;
    server_name 47.94.225.12;    #写你的域名或者IP
    location / {
      proxy_pass http://127.0.0.1:12345;    #Django服务使用的端口
      proxy_set_header Host $host;    #捕获客户端真实IP
      proxy_set_header X-Real-IP $remote_addr;     #$remote_addr 代表客户端IP
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;
    }
    location /static {
    alias  /home/wusir/hz_python/django_test/axf_1806/static;  #静态文件路径
    }
}
Nginx配置文件

相关文章: