1. 切换到服务器存放项目目录

  1. cd /data/www

2. 使用scp或者借助git工具将项目引入目录

以git为例

  1. git clone git@xxx.com

3. 安装Django项目虚拟环境和依赖

  1. cd /data/www/myproject
  2. python3 -m venv venv
  3. source venv/bin/activate
  4. pip3 install -r requirements.txt

4. 收集Django静态文件

  1. mkdir static
  2. mkdir staticfiles
  3. python3 manage.py collectstatic

执行该命令前,确保setting.py中配置了

  1. STATIC_URL = '/static/'
  2. # 开发阶段放置项目自己的静态文件
  3. STATICFILES_DIRS = (
  4. os.path.join(BASE_DIR, 'static'),
  5. )
  6. # 执行collectstatic命令后会将项目中的静态文件收集到该目录下面来(所以不应该在该目录下面放置自己的一些静态文件,因为会覆盖掉)
  7. STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')

5. 启动项目, 检查项目是否运行正常

开启服务器8000端口后,运行项目在8000端口(8000端口并非固定, 可自行定义)

  1. python3 manage.py runserver 0.0.0.0:8000


访问http://服务器公网IP:8000查看服务器Django项目是否启动, 启动正常继续

6. 安装uWSGI

  1. pip3 install uwsgi

确保在venv下安装哦

7. 创建并写入uWSGI配置文件

  1. mkdir uwsgi
  2. cd uwsgi
  3. touch uwsgi.ini uwsgi.log uwsgi.pid uwsgi.status
  4. vim uwsgi.ini


uwsgi.ini内容参考以下

  1. [uwsgi]
  2. uid = root
  3. gid = root
  4. # plugin = python, http
  5. # env = DJANGO_PRODUCTION_SETTINGS=TRUE
  6. chdir = /data/www/myproject
  7. module = myproject.wsgi
  8. # logto=%(chdir)/uwsgi/uwsgi.log
  9. master = True
  10. processes = 4
  11. listen = 128
  12. http = :8000
  13. vaccum = True
  14. static-map = /static=%(chdir)/static
  15. stats=%(chdir)/uwsgi/uwsgi.status
  16. pidfile=%(chdir)/uwsgi/uwsgi.pid
  17. daemonize = %(chdir)/uwsgi/uwsgi.log

8. 通过uWSGI启动项目

  1. cd /data/www/myproject
  2. uwsgi --ini uwsgi/uwsgi.ini (启动之前先确保在venv环境中)

9. 通过上述验证方法检查项目启动正常后,配置Nginx转发

nignx 目录 /etc/nginx/conf.d 用项目的访问网址命名 nginx 文件,比如 myproject.com.conf

  1. server {
  2. listen 80;
  3. server_name myproject.site.com;
  4. location / {
  5. proxy_set_header Host $host;
  6. proxy_set_header X-Real-IP $remote_addr;
  7. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  8. proxy_pass http://127.0.0.1:8000;
  9. }
  10. location ^~ /static/ {
  11. proxy_set_header Host $host;
  12. proxy_set_header X-Real-IP $remote_addr;
  13. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  14. client_max_body_size 10M;
  15. proxy_set_header X-Forwarded-Host $host;
  16. proxy_set_header X-Forwarded-Server $host;
  17. proxy_http_version 1.1;
  18. proxy_request_buffering off;
  19. proxy_pass http://127.0.0.1:8000;
  20. }
  21. location ~ ^/media {
  22. root /data/www/myproject/media;
  23. }
  24. access_log /data/logs/www/myproject.site.com.log;
  25. }

10. 重启nginx

  1. /etc/init.d/nginx restart


或者

  1. service nginx reload|restart


或者

  1. systemctl reload|restart nginx.service

11. 可能用的命令

  1. # 退出虚拟环境venv
  2. deactivate
  3. # 查看8000端口进程
  4. netstat -lnp|grep 8000
  5. # 终止进程
  6. kill -9 xxxx
  7. # 新建命令窗口
  8. screen -S windowname
  9. # 查看nginx配置目录
  10. locate nginx.conf