• 生产环境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

     

    逆风的方向最适合飞翔,我不怕千万人阻挡,只怕自己投降。
  • 相关阅读:
    C#编程规范
    实用JavaScript代码库
    JSON入门
    asp.net基本事件
    iOS开发笔记 3、iOS基础
    iOS开发笔记 8、真机调试和发布软件
    数据同步框架MS Sync Framework不同场景使用例子和简要分析
    使用AppFabric 承载WCF和WF服务实例分析和说明
    .net程序员的iPhone开发MonoTouch
    iOS开发笔记 4、iOS中的Cocoa、设计模式等
  • 原文地址:https://www.cnblogs.com/daemon-czk/p/9995125.html
Copyright © 2020-2023  润新知