python django 项目如何部署上云服务器

在安装好服务器解释器 和 虚拟环境 以及数据库之后

拉起项目

python3 manage.py runserver(一定要在虚拟环境下

安装uwsgi服务器

pip3 install uwsgi

注意:这里需要先安装两个依赖,安装指令:apt-get install build-essential python-dev


安装后 需要进行测试

uwsgi --http:8000 --module MyBlog.wsgi

协议http 项目下的wsgi接口拉起服务器

这时候访问服务器IP,会发现DisallowedHost at /

但是 因为介入了 wsgi 相当于是 生成使用了 需要去改debug

修改为False 和 ALLOWED_HOSTS = [ * ]

改完 重启

uwsgi --http:8000 --module MyBlog.wsgi


然后 外部 就可以访问


处理静态文件

安装好nginx

sudo apt-get install nginx


如需卸载nginx

详细操作:

http://www.debug5.com/detail/1/


测试是否

服务自动起来



接下来 配置 nginx 代理我们的静态文件

在项目 根目录新建文件夹config


进入 config 再创建 必须 .conf

touch blog_nginx.conf


# the upstream component nginx needs to connect to
#user=root;
upstream django {
   # server unix:///path/to/your/mysite/mysite.sock; # for a file socket
   server 127.0.0.1:8000; # for a web port socket (we'll use this first)
}
# configuration of the server
server {
   # the port your site will be served on
   listen      80;
   # the domain name it will serve for
   server_name
服务器ip; # substitute your machine's IP address or FQDN
   charset     utf-8;

   
# max upload size
   client_max_body_size 75M;   # adjust to taste

   # Django media
   location /media  {
       alias /home/Debug/MyBlog/static/media;  
# your Django project's media files - amend as required
   }

   location /static {
       alias /home/Debug/MyBlog/static;
# your Django project's static files - amend as required
   }

   
# Finally, send all non-media requests to the Django server.
   location / {
       uwsgi_pass  django;
       include     /etc/nginx/uwsgi_params;
# the uwsgi_params file you installed
   }
}

拷贝一份到nginx启动配置中

sudo cp blog_nginx.conf /etc/nginx/conf.d/

 nginx 默认的启动配置文件


重启nginx就会按照这个配置文件启动

sudo service nginx restart

收集静态文件

需要注释掉 setting里面的静态路径,改成生产环境路径

收集所有静态文件

python manage.py collectstatic

重启nginx服务

sudo service nginx restart




查看状态

ps -ajx|grep nginx


建一个uwsgi.ini配置文件

名字不能变

uwsgi.ini

touch uwsgi.ini


复制内容 写入

下面注释不要

要定格写

 

# mysite_uwsgi.ini file

[uwsgi]

 

# Django-related settings

# the base directory (full path)

chdir           =/root/Debug/MyBlog/

# Django's wsgi file

module          = MyBlog.wsgi

# the virtualenv (full path)

 

# process-related settings

# master

master          = true

# maximum number of worker processes

processes       = 10

# the socket (use the full path to be safe

socket          = 127.0.0.1:8000

# ... with appropriate permissions - may be needed

# chmod-socket    = 664

# clear environment on exit

vacuum          = true

virtualenv = /root/Envs/debug

 

logto = /tmp/mylog.log

 

注:

    chdir: 表示需要操作的目录,也就是项目的目录

    modulewsgi文件的路径

    processes: 进程数

    virtualenv:虚拟环境的目录

 

Socket 处理的是哪个服务器端口

让服务器永远的跑起来


uwsgi -i uwsgi.ini &


改完django 代码后 需要

pkill -f uwsgi

才会生效



            
            

本博客源码Github地址:

https://github.com/whisnos/myblog

请随手给个star,谢谢!

打赏

评论