生产环境django项目部署要点

django项目在centos7上运行注意事项:

settings配置文件设置:ALLOWED_HOSTS = ['*']或者填写指定的ip
收集static静态文件目录:python manage.py collectstatic
运行命令制定ip和端口 例如:python manage.py runserver 0.0.0.0:8000,不能用默认的127.0.0.1:8000
 

centos7虚拟环境virtualenv安装

视频教程:https://www.bilibili.com/video/av10244432/
 
1、虚拟环境命令virtualenv知识链接网站:http://www.cnblogs.com/liuyansheng/p/6141197.html
2、安装python虚拟环境命令
3、yum install python-virtualenv
4、pip3 install virtualenv
5、创建虚拟目录名: virtualenv [--system-site-packages] env3,其中system参数主要作用是依赖真实环境的python库;可以不加,但是无法调用系统的库
 
6、cd env1/,source bin/activate,退出虚拟环境:deactivate,python -V查看python版本
 

 requirements安装项目环境依赖:

a、进入项目目录环境中

b、导入模块

  • 导入方式一:输入:pip freeze >requirements.txt会在当前文件路径生成requirements.txt文件(pip的freeze命令保存了保存当前Python环境下所有类库包,其它包括那些你没有在当前项目中使用的类库。这种方式配合virtualenv比较理想,如果没有虚拟环境,会将系统里面的python所依赖的全部环境都导入出来的)
  • 导入方式二:输入:pipreqs ./ --encoding=utf-8(这个工具的好处是可以通过对项目目录的扫描,自动发现使用了那些类库,自动生成依赖清单。缺点是可能会有些偏差,需要检查并自己调整下)

c、安装模块

输入pip install -r requirements.txt会生成依赖的模块

uwsgi配置:

https://uwsgi-docs.readthedocs.io/en/latest/tutorials/Django_and_nginx.html
 
1、下载uwsgi:pip3 install uwsgi
2、将uwsgi命令添加到系统命令,可以使用软连接:ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
3、直接在uwsgi中运行项目:
进入项目主文件夹执行下面代码:
uwsgi --http :8000 --file MyselfObjects/wsgi.py --static-map=/static=static
在客户端浏览器进行访问
 
 

nginx配置

1.将nginx放到yum repro库中:rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
2.查看nginx信息:yum info nginx
3.使用yum安装ngnix:yum install nginx
4.带参数启动nginx命令:nginx -c /etc/nginx/nginx.conf,
生成环境中最好不要使用systemctl start nginx.service命令
5.查看nginx版本:nginx -v
6.访问nginx,现在你可以通过公网ip (本地可以通过 localhost /或 127.0.0.1 ) 查看nginx 服务返回的信息。:curl -i localhost
7.nginx配置文件,位置在/etc/nginx/:ll /etc/nginx/
8.实践:

a.修改nginx配置文件:vim /etc/nginx/conf.d/default.conf

b.重载服务:/usr/sbin/nginx -s reload

c.从外部访问nginx服务(192.168.10.11),如在客户机(192.168.10.10)的浏览器访问:

d.你发现访问不了,原因1,你没有在hosts文件做映射;原因2,即使你在hosts文件中了映射,由于nginx服务器的80端口堵塞或防火墙没关

e.解决办法:

步骤一:修改客户机(192.168.10.10)的hosts文件,使用SwitchHosts工具添加 192.168.10.11 yytest.com

步骤二:关闭防火墙,

9.nginx常用操作

启动: /usr/sbin/nginx或任意路径下运行:service nginx start(centos7是systemctl start nginx.service )

重启:$ /usr/sbin/nginx –s reload

停止:$ /usr/sbin/nginx –s stop

测试配置文件是否正常:$ /usr/sbin/nginx –t

 

 Nginx+uwsgi启动django:

1、修改nginx配置文件,最新版本的配置文件位于:/etc/nginx/conf.b目录下

2、将/etc/nginx/目录下的uwsgi_params文件复制到项目目录下

3、在项目目录或者虚拟环境同目录下新建uwsgi配置文件,uwsgi.ini

(以上文件的配置请参考网站:https://uwsgi-docs.readthedocs.io/en/latest/tutorials/Django_and_nginx.html)

4、检查uwsgi.ini文件的设置和自定义myobj_nginx.conf文件设置是否正确,

5、nginx -t 查看配置nginx.conf配置文件是否成功,

6、/usrsbin目录下操作服务器nginx启动命令:nginx -c /etc/nginx/nginx.conf

7、以配置文件的形式启动uwsgi服务:uwsgi --ini uwsgi.ini

远程登录,测试是否成功

由于不会手动配置Nginx和uwsgi,redis的开机启动脚本,这里只能先启动redis,然后再虚拟环境下启动Nginx和uwsgi

 

个人用服务器设置外部网络访问权限:

上面的操作能够满足内部网络的访问,但是外部用户无法访问

1、家庭或者个人环境搭建的服务器一般都是有路由的,首先进入路由器管理界面(例如:192.168.1.1)设置虚拟服务器映射,我的路由器设置如下图,如果不知道协议就选择ALL,对外开放端口为8080和80,服务器主机上面开的是80端口

 

网上还有一些其他配置教程,比如还需要配置服务器的静态ip地址,dns,路由器的DDNS,和DMZ主机选项等,如果都不行,就执行下面的操作

2、选用花生壳管理,https://b.oray.com/forward/

下载软件或者在官网注册账号,启动内网穿透(花了6元),然后添加映射关系,按照选项选,很简单,有些选项是需要花钱的,注意,内网IP是自己服务器所在路由器对外公网访问的IP地址(可以在路由器管理界面查看),

3,在服务器主机上面也下载花生壳管理(我的是linux版本的,地址:https://hsk.oray.com/download/#linux),根据官网提示安装,服务器上面安装的时候会生成NS号和密码,要记住,

4、根据使用帮助页面的提示一步一步操作,将NS号和自己的花生壳账号绑定,就会在自己的花生壳内网穿透界面的设备信息看到自己NS号对应的服务器,

5,第4步的操作是让花生壳解析一直在服务器在线,不然如果电脑或者手机关闭了花生壳管理软件,解析就不能正常运行了,别人访问不了你的网站

 

tips:查看服务器端口使用情况:netstat -nltp

 

逆风的方向最适合飞翔,我不怕千万人阻挡,只怕自己投降。
原文地址:https://www.cnblogs.com/daemon-czk/p/9995125.html