如果在生产环境部署django,就要多考虑一些问题了。比如静态文件处理,安全,效率等等 在网上找到了不错的部署的教程,讲解的还是很详细的,我就不重新再整理了。...中国社区 但是作为记录,我还是要记录下部署中遇到的问题: (一)解决Django生产环境部署的静态文件丢失问题 有些时候,把程序放在生产环境,不过出于一些原因还没有配置nginx等环境,关闭了Debug...,想看看网站,这时会出现静态文件无法访问,界面一塌糊涂的情况。...使用如下命令即可成功使用静态文件 python manage.py runserver 0.0.0.0:8000 --insecure (二)部署生产环境之前的准备 正如(一)中的方法只是测试时使用,如何处理静态文件...,其实需要交给nginx等这样的高效软件来完成,所以在配置之前,先使用 python manage.py collectstatic 用来收集静态文件到static文件夹,然后就可以参照上面的教程,通过
在终端进入django的项目目录,输入指令: python manage.py help 查看基础的命令信息 常用命令: 创建app startapp 从模型对象创建数据迁移文件并保存在app的migrations...文件夹 makemigrations 根据迁移文件的内容在数据库里生成相应的数据表 migrate 在本地计算机上启动django项目 runserver 收集所有的静态文件 collectstatic...配置的数据库,可以执行数据库的sql语句 dbshell 显示settings.py的配置信息与默认配置的差异 diffsettings 导出数据表的数据并以json格式储存,如python manage.py...inspectdb 将数据文件导入数据表 loaddata 创建语言文件,用于项目的区域语言设置 makemessages 向指定的收件人发送测试的电子邮件 sendtestmail 进入django...新建测试数据库并使用该数据库运行项目 testserver 清除会话Session数据 clearsessions 查找静态文件的路径信息 findstatic
网络 docker-compose up 启动测试 2.2 处理静态资源 但是在访问simpleui主题的admin后台时,静态资源出了问题 说明这里静态资源无法访问,考虑到nginx...的配置虽然对应到项目容器中静态资源地址,但是却无法访问,这是由于nginx容器与app容器之间中文件并不一样,我们需要添加一个卷共享资源文件 解决方式 – 添加静态资源卷 version: "3" services...up 成功解决, 如果要解决关于 media文件访问也是一样的方法(不过一般都是用分布式存贮) 并且nginx提供了阅读静态资源目录 ( 这是由于添加自动索引参数) 实际在项目上线部署是不建议放这个参数的...这里值得一提的是,如果已经配置了静态资源,但是中间不通过nginx所监听的80端口来分配访问到项目路由,而是直接以服务器的8000端口直接访问服务器,就会发现不论是static还是media都无法访问,...前提是你的项目在 Python path 中,要满足这个条件,最简单的方法是在 manage.py 文件所在的目录中运行这条命令。
我们可以通过输入以下内容将所有静态内容收集到我们配置的目录位置: ~/myprojectdir/manage.py collectstatic 您必须确认操作。...我们还将告诉它在~/ myprojectdir /static目录中找到我们收集的静态资产的位置。...Nginx显示502 Bad Gateway错误而不是Django应用程序 502错误表示Nginx无法成功代理请求。 各种配置问题都表现为502错误,因此需要更多信息才能正确排除故障。...您可能会看到以下消息: connect()到unix:/run/gunicorn.sock失败(2:没有这样的文件或目录) 这表明Nginx无法在给定位置找到gunicorn.sock文件。...如果通向套接字的任何目录没有世界读取和执行权限,则Nginx将无法在不允许全局读取和执行权限的情况下访问套接字,或确保将组所有权授予Nginx所属的组的。
此时我们无法成功启动服务,因为它依赖于www-data用户可用。在安装Nginx之前,我们必须等待启动uWSGI服务。...Nginx显示502 Bad Gateway错误而不是Django应用程序 502错误表示Nginx无法成功代理请求。各种配置问题都表现为502错误,因此需要更多信息才能正确排除故障。...您可能会看到以下消息: connect()到unix:/run/uwsgi/firstsite.sock失败(2:没有这样的文件或目录) 这表明Nginx无法在给定位置找到套接字文件。...您可能遇到问题的原因有很多,但通常情况下,如果uWSGI无法创建套接字文件,则出于以下原因之一: 项目文件由root用户而不是sudo用户拥有 文件中的ExecStartPre行/etc/systemd...通过这些设置,Nginx进程应该能够成功访问套接字。 如果通向套接字的任何目录不属于该www-data组,或者没有全局读取和执行权限,则Nginx将无法访问该套接字。通常,这意味着配置文件有错误。
介绍 Django是一个用于快速开发Web应用程序的高级Python框架。Django一键安装程序通过Django,Nginx,Gunicorn和Postgres为您的服务器快速部署预配置的开发环境。...如果以后需要再参考,可以在文件/etc/update-motd.d/99-one-click中找到相关信息。...Nginx配置文件位于/etc/nginx/sites-enabled/django。如果重命名项目文件夹,请记住更改静态文件的路径。...注意:如果重命名项目文件夹,则需要进行一些配置文件更新。具体来说,您需要在Nginx配置中更改静态文件的路径。...在这种情况下,您可以使用Django的内置开发服务器,它自动检测更改: # systemctl stop gunicorn.service # python manage.py runserver
我们可以通过输入以下内容将所有静态内容收集到我们配置的目录位置: ~/myprojectdir/manage.py collectstatic 您必须确认操作。...我们还将告诉它在哪里可以找到我们在~/myprojectdir/static目录中收集的静态资产。...Nginx显示502 Bad Gateway错误而不是Django应用程序 502错误表示Nginx无法成功代理请求。各种配置问题都表现为502错误,因此需要更多信息才能正确排除故障。...您可能会看到以下消息: connect()到unix:/run/gunicorn.sock失败(2:没有这样的文件或目录) 这表明Nginx无法在给定位置找到该gunicorn.sock文件。...如果通向套接字的任何目录没有全局读取和执行权限,则Nginx将无法在不允许全局读取和执行权限的情况下访问套接字,或确保将组所有权授予Nginx所属的组的。
我们可以通过输入以下内容将所有静态内容收集到我们配置的目录位置: ~/myprojectdir/manage.py collectstatic 您必须确认操作。...注意:管理界面不会应用任何样式,因为Gunicorn不知道如何找到对此负责的静态CSS内容。...我们还将告诉它在哪里可以找到我们在~/myprojectdir/static目录中收集的静态资产。...Nginx显示502 Bad Gateway错误而不是Django应用程序 502错误表示Nginx无法成功代理请求。各种配置问题都表现为502错误,因此需要更多信息才能正确排除故障。...如果通向套接字的任何目录没有全局读取和执行权限,则Nginx将无法在不允许全局读取和执行权限的情况下访问套接字,或确保将组所有权授予Nginx所属的组的。
我们是在本地开发的,项目最终上线是要部署到服务器上的,本篇笔记记录了我个人部署的整个过程,仅供参考。 一、新建站点 1、使用宝塔面板创建一个站点 站点创建成功!...在项目开发阶段,DEBUG=True 的时候,Django 会用自带的的 web 服务来处理静态文件,但他的性能不是很好。...所以在项目部署阶段,DEBUG=False 的时候,Django 便不在管理静态文件了,Django 想让我们把静态文件交给 Nginx(或者其他 web 服务器)来处理。 ...(BASE_DIR, 'static') 2、收集静态文件 执行以下命令,对项目中的静态文件进行收集,收集后存放的位置就是我们上面设置的静态文件收集目录。...python3 manage.py collectstatic 3、配置 Nginx 在站点配置文件中加入以下内容。 location ~ .*\.
非静态请求通过uwsgi传递给Django,由Django来进行处理,从而完成一次WEB请求。...python插件,不然很有可能会出现类似这样的错误: uwsgi: unrecognized option '--wsgi-file' getopt_long() error 执行成功在浏览器中打开:http...注意这时项目的静态文件是不会被加载的,需要用nginx做静态文件代理。 配置uwsgi uwsgi支持通过配置文件的方式启动,可以接受更多的参数,高度可定制。...静态文件 把Django自带的静态文件收集到同一个static中,不然访问Django的admin页面会找不到静态文件。...在django的setting文件中,添加下面一行内容: STATIC_ROOT = os.path.join(BASE_DIR, "static/") 然后到项目目录下执行: python manage.py
Ubuntu中pip和pip3区别: pip默认给python2用,pip3默认给Python3使用 django中有runserver可以运行项目为什么还要部署: 因为runserver是一个单线程的服务器...安装Django sudo apt-get install django==1.11 5.也可以一次性安装所有的依赖库: 进入本机项目开发的环境下,把文件通过xftp传送到ubuntu中: pip...select * from 表明; 查看所有的插入数据 ubuntu在主项目下创建静态文件夹用于收集静态文件: mkdir static_file 使用pwd复制绝对路径,在setting文件的静态文件区域添加...,让django知道静态文件应该去哪里找: STATIC_ROOT='将静态文件的绝对路径复制过来' 保存退出之后运行命令收集静态文件: python manage.py collectstatic...[location - alias] 重启nginx 修改nginx配置文件具体步骤: vim nginx.conf找到http{}这一个模块,配置服务器,直接在模块内部的最后追加: server
安装uwsgi uwsgi是一个应用服务器,非静态文件的网络请求就必须通过他完成,他也可以充当静态文件服务器,但不是他的强项。...安装nginx: nginx是一个web服务器。用来加载静态文件和接收http请求的。通过命令sudo apt install nginx即可安装。...收集静态文件: 静态文件应该让nginx来服务,而不是让django来做。...那么我们可以执行以下命令:python manage.py collectstatic来收集所有静态文件,将这些静态文件放在指定的目录下。...使用supervisor配置: 让supervisor管理uwsgi,可以在uwsgi发生意外的情况下,会自动的重启。
Nginx的配置 7 django使用runserver 启动,使用Nginx进行代理 8 django使用uwsgi启动,之后使用Nginx进行转发 9 Nginx保存静态文件,直接访问 1 WSGI...Modules 目录, 找到Setup.dist文件,将下面几行的注释去掉(下图已去掉)。...1 我们在linux里面,使用runserver 将django项目启动 python3 manage.py runserver 0.0.0.0:8000 以上启动之后,直接在Windows的浏览器端...项目,里面是有静态文件的,我们可以将django项目的静态文件放到linux的一个文件夹下,在Nginx里面配置这个文件夹 1 创建一个文件夹,以后文件夹里面就是存放项目的静态文件 /mylinux/python...执行以下的命令,就将项目需要的静态文件放到我们自己创建的目录下了 python3 manage.py collectstatic 接下来就是告诉Nginx,什么样子的请求来了就会到这个文件夹下找东西
这里主要说下 vue,django,django-rest-framework。 1、前后端分离后在生产环境部署时静态资源无法访问。...nginx 中设置同样的代理就行了,这并没毛病,但当你把 django 配置文件中的 DEBUG 设置为 FALSE 后,原来有 django 来驱动的静态不再由 django 来驱动了,需要 nginx...python manage.py collectstatic 这一步会把 django 用到的静态文件全部放在STATIC_ROOT 的路径,因此这个路径你可以设置成 vue 的 static 路径,这样收集后不用再手动复制到一起了...第二、通过 django 上传 media 文件也由 nginx 来驱动。...HOST 替换为我们的域名,这一步通过在 nginx 配置文件中代理那块加上 proxy_set_header Host $host; 注意这里没有 port,因为我们通过域名访问,不使用主机加端口的方式
静态文件 需生成的文件为:包含前端vue打包的dist文件,django后端的static静态资源文件。...] # 方案二:我采用的 CORS_ORIGIN_ALLOW_ALL = True #加上允许所有跨域 3、收集django项目中的静态文件 在配置文件中配置STATIC_ROOT STATIC_ROOT.../entrypoint.sh"] 五、nginx_docker静态资源准备 讲上文中django打包好的static文件夹复制到nginx_docker文件夹中。...打包命令 npm run build 2、部署静态文件default.conf 在nginx_docker文件夹中创建default.conf文件,编写如下内容: 域名记得改成自己的 upstream...,所以无法找到具体的文件 #因此需要rewrite到index.html中,然后交给路由在处理请求资源 location @router { rewrite ^
我想应该是项目上线的安全措施,但是我想调试项目.找到方法如下 在settings.py里面编辑 ?...补充知识:linux下使用uwsgi部署django项目时 静态文件不能正常加载 在 linux 下需要用 python-admin 来开 django 的服务,如果你是 python3 那么命令应为...python3-admin manage.py runserver 可以正常访问页面,没有静态加载的问题 在配置 uwsgi 时需要更改项目 settings.py 中的设置,更改项目如下 debug...然后配置 uwsgi 有许多方法,我采用的是下面的一种 在项目目录下新建 socket.xml 文件(与 manage.py 同级)内容如下: ?...以上这篇解决django无法访问本地static文件(js,css,img)网页里js,cs都加载不了就是小编分享给大家的全部内容了,希望能给大家一个参考。
前言 上一篇文章,我们提到了Python3+Django2 配置后台管理,在开发环境中这样启动测试是没有任何问题的,我们可以使用 Django 默认的服务器。.../news/script/uwsgi.sock; # 指定uwsgi的sock文件所有动态请求就会直接丢给他 } } 重启Nginx,你以为这样就成功了么?...最后不要忘了修改一下域名限制参数,否则无法通过域名访问: # 修改为 * 允许所有 ALLOWED_HOSTS = ['*'] 重启服务,如果正常显示,说明没有问题,如果无法访问,再回头仔细检查一下配置...调优 既然,我们使用了 Nginx 做代理,最好做动静分离,Nginx处理静态资源的能力可以大大高于uWSGI 的。.../news/script/uwsgi.sock; # 指定uwsgi的sock文件所有动态请求就会直接丢给他 } # 动静分离 Nginx 处理静态请求
在测试环境下,我们可以简单的使用 python manage.py runserver 8080 启动一个 Django,由于尚未通过安全审核或性能测试,而且是单线程,并发能力也不强,因此不能在生产环境中使用...快速使用 直接在 Django 项目的目录内,也就是 manage.py 所在的目录内执行: gunicorn your_project.wsgi:application --bind 0.0.0.0:...配合 Nginx 非常适合处理静态文件,所以静态文件就交给 Nginx,然后服务接口交给 Gunicorn,让 Nginx 代理 Gunicorn。...Nginx 和 Gunicorn 故障排除 对于故障排除,日志可以帮助找到根本原因。...的反向代理,最好都使用 socket 来通讯,至于为什么,可以参考前文redis 是单线程,是怎么解决高并发问题的。
, Django 的 admin 会用到这个 $ pip install docutils # 测试 Django 是否安装成功 $ django-admin.py startproject $ cd # 给 manage.py 运行权限 $ chmod +x manage.py # 测试服务器,如果只是在本机测试则不需要指定 0.0.0.0 $ ..../manage.py run_gunicorn -w 4 -k gevent # Ctrl+C 可以退出 Gunicorn,PS:如果它成功运行的话 十一、安装 Supervisor,提供自启动支持 通过...sudo supervisorctl start gunicorn 十二、安装Nginx,添加静态文件支持 Django 的静态文件分为 static 和 media ,两者都是静态文件,只是前者由你产生...,后者是用户上传的文件 PS:Django 的 DEBUG=True 模式支持静态文件调试,但是 DEBUG=False 后就不支持了 # 创建文件目录 static 、 media sudo mkdir
前言 上一篇文章,我们提到了Python3+Django2 配置后台管理,在开发环境中这样启动测试是没有任何问题的,我们可以使用 Django 默认的服务器。.../news/script/uwsgi.sock; # 指定uwsgi的sock文件所有动态请求就会直接丢给他 } } 重启Nginx,你以为这样就成功了么?...最后不要忘了修改一下域名限制参数,否则无法通过域名访问: # 修改为 * 允许所有 ALLOWED_HOSTS = ['*'] Django默认是英文展示,如果觉得不舒服可以替换成中文,修改setting.py...调优 既然,我们使用了 Nginx 做代理,最好做动静分离,Nginx处理静态资源的能力可以大大高于uWSGI 的。.../news/script/uwsgi.sock; # 指定uwsgi的sock文件所有动态请求就会直接丢给他 } # 动静分离 Nginx 处理静态请求
领取专属 10元无门槛券
手把手带您无忧上云