Django linux uWsgi Nginx 部署

时间:2022-05-26 21:35:51

安装mysql-server   

sudo apt-get install mysql-server

登录mysql

 mysql -u root

创建新的用户

 grant all on *.* to wlc@localhost identified by "123456";
#修改密码
set password for root@localhost=password('12345')

最后刷入权限的改动

flush privileges

安装mysqlclient 遇到如下问题

Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-rwo6actu/mysqlclient/
#解决方案
sudo apt-get install libmysqlclient-dev

创建django项目修改setting文件添加mysql的配置 就可以正常启动django    python manager.py migrate      python manager.py runserver 0.0.0.0:8000

查看正在使用的端口号:  netstat -ano

将每次开机需要执行的命令放到:  /etc/rc.local

安装监控工具:  pip install django-debug-toolbar

在setting中的instal APP 里面添加: ‘debug_toolbar’,

在中间件里边添加:debug_toolbar.middleware.DebugToolbarMiddleware

查看django的path:  python -c"import django;print(django.__path__);"     结果:['/home/jupyter/wlc/env3.5/lib/python3.5/site-packages/django']

打开该路径下的debug_toolbar的settingpy文件 添加js文件 自带的js是谷歌有可能加载不上:将里面的js换成: cdn.bootcss.com/jquery/2.2.4/jquery.js

*********由于服务器之前有apache2 将其卸载以后使用ip访问直接显示apache的主页一直以为没有将Apache卸载完后来才发现其实是不管是apache还是nginx最终指向的页面html都在 /var/www/html/index.html 

*********安装nginx以后里边多了index.nginx.debian.html页面 删除index页面启动nginx 然后访问80端口就显示的是nginx主页

安装nginx  最好使用root账户

安装 uwsgi pip install uwsgi

uwsgi安装成功后 在站点根目录下添加一个ini文件 website.ini(使用 shift + insert)快捷键可以直接将windows下复制的内容直接黏贴到vim编辑的文件中

# myweb_uwsgi.ini file
[uwsgi]

# Django-related settings

socket = :8000

# the base directory (full path)
chdir           = /home/wlc/env3.5/djangoproject/website(站点根路径)

# Django s wsgi file
module          =website.wsgi

# process-related settings
# master
master          = true

# maximum number of worker processes
processes       = 4

# ... with appropriate permissions - may be needed
# chmod-socket    = 664
# clear environment on exit
vacuum          = true   

Django linux uWsgi Nginx 部署

进入站点目录 cd /home/jupyter/wlc/env3.5/djangoTest/

执行命令 uwsgi --ini djangoTest_uwsgi.ini  在该命令正在执行的前提下  此时是可以直接浏览器通过8000端口访问站点的 接下来添加nginx配置

将如下配置添加到 /etc/nginx/nginx.conf 配置文件当中

server {
    listen         8099; 
    server_name    127.0.0.1 
    charset UTF-8;
    access_log      /var/log/nginx/website_access.log;(存放访问日志)
    error_log       /var/log/nginx/website_error.log;(存放错误日志)

    client_max_body_size 75M;

    location / { 
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:8000;
        uwsgi_read_timeout 2;
    }   
    location /static {
        expires 30d;
        autoindex on; 
        add_header Cache-Control private;
        alias /home/XXXXXXXXXX/website/static/;(指定项目的静态文件位置 js image css 等)
     }
 }

Django linux uWsgi Nginx 部署

终止nginx
  /etc/init.d/nginx stop

启动nginx

  /etc/init.d/nginx start

在浏览器中访问 IP:8099(如果是局域网服务器则在路由器转发规则中添加8099端口转发)就可以显示配置的站点内容

遇到502错误查看是否正在执行该命令 uwsgi --ini djangoTest_uwsgi.ini

查看访问日志已经错误日志

  cat /var/log/nginx/website_access.log

  cat /var/log/nginx/website_error.log