关于Django + Nginx + uWSGI 配置总结

来源:互联网 发布:淘宝百合花名妆真假 编辑:程序博客网 时间:2024/06/08 00:27

目录:

  1. 下载Django项目
  2. 配置uWSGI
  3. 配置Nginx
  4. SSH 端口转发

环境:

Red Hat 4.4.7-18(Linux version 2.6.32)
Django (1.11.5)
uWSGI (2.0.15)
python (2.7.13)

一. 下载Django项目

这个步骤非常简单,就是把你写好的Django项目放到服务器上。

二. 配置uWSGI

1,使用pip install uWSGI

如果慢的话,可以使用国内源安装
清华:http://mirrors.tuna.tsinghua.edu.cn/pypi/simple
豆瓣:https://pypi.doubanio.com/simple(推荐)
使用方法,例如:pip install -i https://pypi.doubanio.com/simple uWSGI

2,配置uWSGI
在项目目录下,生成wsgi.ini文件,并设置内容如下:

[uwsgi]# 你的Django项目的根文件夹,要绝对路径chdir=/your/django/project/root/dir# 你的Django项目的虚拟环境的文件夹,要绝对路径virtualenv=/your/django/project/virtual/dir# uWSGI的 socket 端口socket=:8084# uWSGI的 http 端口http=:8000# 设置初始的 uwsgi 进程为主进程(主进程可以产生worker processes)master=1# 设置处理请求的进程数processes=4# 自定义的UID,随意uid=youruid# 自定义的GID,随意gid=yourgid# django wsgi 文件位置file=/your/project/dir/wsgi.py# 配置 uwsgi 启动后,PID保存到的文件pidfile=wsgi.pid# 通过管道配置 uwsgi 的文件。例如:echo R > wsgi.ff 就可以重启 uwsgi 服务器master-fifo=wsgi.ff# 配置log输出daemonize=wsgi.log

3,启动uWSGI

uwsgi –ini wsgi.ini

4,测试 uWSGI

curl localhost:port

三,配置Nginx

1,安装Nginx

yum install nginx

2,配置Nginx
打开默认的配置文件/etc/nginx/conf.d/default.conf

server {    listen       8001 default_server;    #listen       [::]:80 default_server;    server_name  _;    root         /usr/share/nginx/html;    # Load configuration files for the default server block.    include /etc/nginx/default.d/*.conf;    location /admin{         include uwsgi_params;         uwsgi_pass localhost:8084;    }    error_page 404 /404.html;        location = /40x.html {    }    error_page 500 502 503 504 /50x.html;        location = /50x.html {    }}

3,测试修改后的配置文件

sudo nginx -t

4,启动Nginx

sudo nginx

5,测试整个环境

curl localhost:8001

四,配置端口转发

当前的测试环境状态是:
1,从个人电脑上,无法直接到服务器上,中间需要一个跳板机。即:

client(我) –ssh–> 跳板机 –ssh–> 服务器
(跳板机:就是一个中间服务器,安全程度比较高,把服务器和外部环境隔离。想要对服务器进行操作的话,必须先登录跳板机)

2,而且服务器没有公网IP,即:从个人机器无法直接连接到服务器上。

在这种情况下,想要访问服务器的80等端口的话,需要进行ssh端口转发

ssh yourname@跳板机IP -L 本机端口:服务器IP:服务器端口
这个命令的意思是,当有请求要访问“本机端口”时,把请求通过“yourname@跳板机IP”,转发到“服务器IP:服务器端口”上。

这样的话,当你在本机通过localhost:8001端口进行访问时,就可以直接请求到服务器的8001端口了。

原创粉丝点击