未分类

本节内容 uwsgi 介绍 uwsgi安装使用 nginx安装配置 django with nginx ### 如何在生产上部署Django? Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比较常见的一种方式。 ### uwsgi介绍 uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议。Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换。 要注意 WSGI / uwsgi / uWSGI 这三个概念的区分。 1. WSGI是一种Web服务器网关接口。它是一个Web服务器(如nginx,uWSGI等服务器)与web应用(如用Flask框架写的程序)通信的一种规范。 2. uwsgi是一种线路协议而不是通信协议,在此常用于在uWSGI服务器与其他网络服务器的数据通信。 3. 而uWSGI是实现了uwsgi和WSGI两种协议的Web服务器。 4. uwsgi协议是一个uWSGI服务器自有的协议,它用于定义传输信息的类型(type of information),每一个uwsgi packet前4byte为传输信息类型描述,它与WSGI相比是两样东西。 **uwsgi性能非常高** ![](/static/blog/img/38456f335b3c4337054ab8b6397755be/blog/720333/201703/720333-20170312154455592-1425120615.png) uWSGI的主要特点如下 1. 超快的性能 2. 低内存占用(实测为apache2的mod_wsgi的一半左右) 3. 多app管理(终于不用冥思苦想下个app用哪个端口比较好了-.-) 4. 详尽的日志功能(可以用来分析app性能和瓶颈) 5. 高度可定制(内存大小限制,服务一定次数后重启等) 总而言之uwgi是个部署用的好东东,正如uWSGI作者所吹嘘的: _`If you are searching for a simple wsgi-only server, uWSGI is not for you, but if you are building a real (production-ready) app that need to be rock-solid, fast and easy to distribute/optimize for various load-average, you will pathetically and morbidly fall in love (we hope) with uWSGI.`_ ### Uwsgi 安装使用 ? 1 2 3 4 | `# Install the latest stable release:` `pip install uwsgi` `# ... or if you want to install the latest LTS (long term support) release,` `pip install https:``/``/``projects.unbit.it``/``downloads``/``uwsgi``-``lts.tar.gz` ---|--- 基本测试 Create a file called `test.py`: ? 1 2 3 4 5 | `# test.py` `def` `application(env, start_response):` ` ``start_response(``'200 OK'``, [(``'Content-Type'``,``'text/html'``)])` ` ``return` `[b``"Hello World"``] ``# python3` ` ``#return ["Hello World"] # python2` ---|--- 运行 ? 1 | `uwsgi ``-``-``http :``8000` `-``-``wsgi``-``file` `test.py` ---|--- #### 用uwsgi 启动django ? 1 | `uwsgi ``-``-``http :``8000` `-``-``module mysite.wsgi` ---|--- 可以把参数写到配置文件里 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | `alex@alex``-``ubuntu:~``/``uwsgi``-``test$ more crazye``-``uwsgi.ini ` `[uwsgi]` `http ``=` `:``9000` `#the local unix socket file than commnuincate to Nginx` `socket ``=` `127.0``.``0.1``:``8001` `# the base directory (full path)` `chdir ``=` `/``home``/``alex``/``CrazyEye ` `# Django's wsgi file` `wsgi``-``file` `=` `CrazyEye``/``wsgi.py` `# maximum number of worker processes` `processes ``=` `4` `#thread numbers startched in each worker process` `threads ``=` `2` `#monitor uwsgi status ` `stats ``=` `127.0``.``0.1``:``9191` `# clear environment on exit` `vacuum ``=` `true` ---|--- 启动 ? 1 | `/``usr``/``local``/``bin``/``uwsgi crazye``-``uwsgi.ini` ---|--- ### Nginx安装使用 ? 1 2 | `sudo apt``-``get install nginx` `sudo ``/``etc``/``init.d``/``nginx start ``# start nginx` ---|--- #### 为你的项目生成Nginx配置文件 You will need the `uwsgi_params` file, which is available in the `nginx` directory of the uWSGI distribution, or from [https://github.com/nginx/nginx/blob/master/conf/uwsgi_params](https://github.com/nginx/nginx/blob/master/conf/uwsgi_params) Copy it into your project directory. In a moment we will tell nginx to refer to it. Now create a file called mysite_nginx.conf, and put this in it: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | `# mysite_nginx.conf` `# the upstream component nginx needs to connect to` `upstream django {` ` ``# server unix:///path/to/your/mysite/mysite.sock; # for a file socket` ` ``server ``127.0``.``0.1``:``8001``; ``# for a web port socket (we'll use this first)` `}` `# configuration of the server` `server {` ` ``# the port your site will be served on` ` ``listen ``8000``;` ` ``# the domain name it will serve for` ` ``server_name .example.com; ``# 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 ``/``path``/``to``/``your``/``mysite``/``media; ``# your Django project's media files - amend as required` ` ``}` ` ``location ``/``static {` ` ``alias ``/``path``/``to``/``your``/``mysite``/``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 ``/``path``/``to``/``your``/``mysite``/``uwsgi_params; ``# the uwsgi_params file you installed` ` ``}` `}` ---|--- This conf file tells nginx to serve up media and static files from the filesystem, as well as handle requests that require Django’s intervention. For a large deployment it is considered good practice to let one server handle static/media files, and another handle Django applications, but for now, this will do just fine. Symlink to this file from /etc/nginx/sites-enabled so nginx can see it: ? 1 | `sudo ln ``-``s ~``/``path``/``to``/``your``/``mysite``/``mysite_nginx.conf ``/``etc``/``nginx``/``sites``-``enabled``/` ---|--- #### Deploying static files Before running nginx, you have to collect all Django static files in the static folder. First of all you have to edit mysite/settings.py adding: ? 1 | `STATIC_ROOT ``=` `os.path.join(BASE_DIR, ``"static/"``)` ---|--- and then run ? 1 | `python manage.py collectstatic` ---|--- 此时启动Nginx 和Uwsgi,你的django项目就可以实现高并发啦! _``_

Vue

完整报错信息是 `Refused to apply style from 'http://localhost:8080/src/assets//css/reset.css' because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checking is enabled` 问题就是这个文件的类型不是一个受支持的[样式表](https://so.csdn.net/so/search?q=%E6%A0%B7%E5%BC%8F%E8%A1%A8&spm=1001.2101.3001.7020),无法应用样式。 在 vue 项目中,在 `src` 的 `assets` 目录下设置了一些 `css` 文件,然后在 `public` 下的 `index.html` 中引入,启动项目出现了此问题。 解决方法:因为在 vue 项目中,`public` 和 `src` 目录是同级的,css 在 `src/assets/css` 下,`index.html` 在 `public` 目录下,将 css 文件移至 `public/css` 目录下 ![在这里插入图片描述](/static/blog/img/72734556ae57adc490c2f568b309ffe3/a61306c8acfb4f89bcb0009a0f35830b.png) 出现这个报错的原因不一定是这个方法,其他原因请大家再查阅资料。 如有错误,欢迎指正,谢谢! 以上内容仅供参考,欢迎大家讨论。

Vue

null

Vue

null

浏览器书签

null

Vue

null

Vue

null

浏览器书签

null

浏览器书签

null

浏览器书签

null

浏览器书签

null

精品游戏◆乐于分享

加入我们

Title

代做工资流水公司贵阳流水单开具黄冈企业银行流水费用汕头日常消费流水代做汕头工资证明制作大庆工资银行流水价格莆田房贷收入证明样本开封公司流水图片西宁查询企业对公流水遵义工资流水app截图开具黄冈打入职工资流水吉林做对公银行流水深圳做自存流水淄博打工资流水app截图泉州打印企业对私流水珠海代开日常消费流水淄博打工资流水单佛山企业流水打印多少钱柳州工资代付流水代做金华房贷流水样本广州工资证明模板包头转账流水代做兰州自存银行流水代开泰州办理薪资银行流水大庆流水费用南宁打印公司流水新乡银行流水报价天津代做流水宜春代办工资流水账单珠海自存流水制作泉州查询银行流水PS香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

代做工资流水公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化

代做工资流水公司贵阳流水单开具黄冈企业银行流水费用汕头日常消费流水代做汕头工资证明制作大庆工资银行流水价格莆田房贷收入证明样本开封公司流水图片西宁查询企业对公流水遵义工资流水app截图开具黄冈打入职工资流水吉林做对公银行流水深圳做自存流水淄博打工资流水app截图泉州打印企业对私流水珠海代开日常消费流水淄博打工资流水单佛山企业流水打印多少钱柳州工资代付流水代做金华房贷流水样本广州工资证明模板包头转账流水代做兰州自存银行流水代开泰州办理薪资银行流水大庆流水费用南宁打印公司流水新乡银行流水报价天津代做流水宜春代办工资流水账单珠海自存流水制作泉州查询银行流水PS香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

代做工资流水公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化