部署Django项目到生产环境

/ 0评 / 3

环境准备

    因为项目是在Windows下开发的,而windows下的py版本是3.5,所以得先搞定linux下自带的py2.7,然后安装上py3.5,再安装django(注意版本一致,一会出什么小问题可没法查了)

    安装成功后可以查看:


 我这里使用的是py3.5.5,django2.0.3,之后记得pip install uwsgi.安装完成之后可以往下走了(记得测试一下,对了测试的时候如果你是阿里云主机记得配置一下安全组策略,不然你的端口号可能没有开窗户,然后就会黑了...之前玩Tomcat的时候出过这个问题,所以提一下)

这里简单的写一个 测试小程序来观察下:

def application(env, start_response):
	start_response('200 OK',[('Content-Type','text/html')])
	return 'Hello World'
uwsgi --http :8001 --wsgi-file test.py

    要是上面这个能正常hello World的话就可以继续往下走了 

除了这两个之外便是DB(之前装博客就有mySQL了),DB这里可以单独为这个项目创建一个用户,给他一个可操作的数据库,剩下权限全部给干掉(毕竟毕设项目没得牌面),而服务器正好我本来驱动博客就有Nginx,注意这里(因为我的客户端使用的是微信小程序,而微信小程序只信仰https)其实我之前早就配过https了,只是博客的内容搬了一次搬丢了,然后再也没去搬,而配置https自行百度,成功之后是这样的:


  当你配置完这些基础环境的时候,就该下一步了:

    把Django中的setting文件个改一下(这里特特指DB的配置,当然,log的配置也得注意一下)

各种配置:

  先创建一个只能操作以其名称开头数据库的用户,然后创建一个以其名称开头的数据库,随机生成密码 然后修改项目当中的setting。修改完这些之后可以上传项目到主机,上传完成之后可以暂时对项目进行测试。

    利用manage.py生成model,并创建超级用户。搞定这些之后可以试试项目能不能run:

python manage.py runserver
curl http://127.0.0.1:8000/....

     如果此时能拿到数据则ok,也可以尝试gunicorn启动一下项目:

gunicorn py_code.wsgi:application --name Djangopro --workers 2 --user=root --group=root --bind=127.0.0.1:8080 --daemon

     当然这个是后台启动,想关掉自动netstat -tunlp | grep -rn "8080" 然后kill掉。

    这样一来本地是可以跑,但是别人就访问不到了呀。

    所以Nginx抬一手:https是443端口,所以监听443,配置ssl之前我做过了,所以只需要在localtion当中重新配置一下,反向代理到127.0.0.1:8080,这样一来就可以访问到了:

    	location / {
        	proxy_pass http://127.0.0.1:8080;  
        	proxy_set_header Host $host;  
        	proxy_set_header X-Real-IP $remote_addr;  
        	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    	}

 访问一下:


搞定!这样一来我的https也就搞定了,下个阵地该到微信小程序啦。

  

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注