1. 程式人生 > >Django專案部署:Nginx+uWSGI伺服器

Django專案部署:Nginx+uWSGI伺服器

        

在Django專案的開發中,Django框架集成了開發者的伺服器,但是在實際生產環境中並不能作為網站的伺服器。專案開發完成,需要將它放到伺服器上,這個伺服器有固定的ip,通過域名繫結,瀏覽器在訪問域名時就可以通過DNS解析出對應的伺服器ip地址。伺服器分為私有伺服器和公有伺服器,私有伺服器需要自己維護,購買和專業維護的成本高。公有伺服器事先已經分配好了ip地址,如阿里雲、騰訊雲、青雲等,通過銷售伺服器空間或者主機,遠端連線公有云服務,只需要安裝伺服器軟體,就可以將自己的專案部署到公有伺服器上。

我們使用的是Nginx和uWSGI作為伺服器,瀏覽器訪問的流程:  瀏覽器發起請求,如果是靜態檔案,Nginx伺服器直接讀取磁碟並返回給瀏覽器顯示;如果是動態檔案,則將請求資訊轉發給後面的uWSGI伺服器,uwSGI進行url匹配,找出檢視執行返回響應。


uWSGI安裝和配置

1.安裝

pip install uwsgi

2.配置,在專案目錄下建立uwsgi.ini檔案,配置如下

[uwsgi]
#使用nginx連線時使用
socket=127.0.0.1:8080
#直接做web伺服器使用
#http=127.0.0.1:8080
#專案目錄
chdir=/home/python/Desktop/pytest/test6
#專案中wsgi.py檔案的目錄,相對於專案目錄
wsgi-file=test6/wsgi.py
processes=4
threads=2
master=True
pidfile=uwsgi.pid
daemonize=uwsgi.log
3.操作命令

啟動:uwsgi --ini uwsgi.ini

結束:uwsgi --stop uwsgi.pid

檢視: ps aux | grep uwsgi

Nginx安裝和配置

1.安裝

進入軟體安裝的資料夾:cd /usr/local/

下載壓縮包:sudo wget http://nginx.org/download/nginx-1.5.6.

解壓:tar.gztar xf nginx-1.5.6.tar.gz

執行安裝檔案:cd nginx-1.5.6            sudo ./configure               sudo make install                     

在usr/local 目錄下多出來一個Nginx資料夾。說明:如果安裝報錯,可能缺少依賴檔案,下載pcre-8.33.tar.gz,執行解壓安裝同Nginx。

錯誤解決:

(1)問題內容:

checking for C compiler ... found but is not working

./configure error : C compiler gcc is not found

(2)原因分析:

configure首先會編譯一個小測試程式,通過測試其執行結果來判斷編譯器是否能正常工作,由於交叉編譯器所編譯出的程式是無法在編譯主機上執行的,故而產生此錯誤。

(3)解決辦法:

編輯auto/cc/name檔案,將21行的“exit 1”註釋掉(令測試程式不會報錯)。

(1)問題內容:

執行./configure時顯示:/configure: line 2407: config.log: Permission denied

(2)解決辦法:

在配置時需要加sudo,否則許可權不足,安裝不成功。

2.配置

找到配置檔案:cd nginx/conf     

編輯配置檔案:sudo vi nginx.conf

 server{
          listen       80;           監聽埠號
          server_name  localhost;          伺服器地址
 
          location /{
              include uwsgi_params;             將所有引數轉移到uwsgi下
              uwsgi_pass 127.0.0.1:8080;        uwsgi的ip和埠,這樣Nginx就可以轉給uwsgi
          }
          location /static{
              alias /var/www/dailyfresh/static/;          靜態檔案的位置,Nginx查詢靜態檔案的路徑
          }

          error_page   500 502 503 504  /50x.html;
          location = /50x.html {
              root   html;
       }
                          
建立靜態資料夾: sudo mkdir -vp /var/www/dailyfresh/static/

修改目錄許可權:sudo chomd 777 /var/www/dailyfresh/static/
在專案中註冊靜態檔案地址:STATIC_ROOT = '/var/www/dailyfresh/static' 

3.操作命令

收集靜態檔案命令:Python manage.py collectstatic

啟動Nginx:sudo /usr/local/nginx/sbin/nginx

關閉Nginx:sudo /usr/local/nginx/sbin/nginx -s stop

相關推薦

Django專案部署:Nginx+uWSGI伺服器

         在Django專案的開發中,Django框架集成了開發者的伺服器,但是在實際生產環境中並不能作為網站的伺服器。專案開發完成,需要將它放到伺服器上,這個伺服器有固定的ip,通過域名繫結,瀏覽器在訪問域名時就可以通過DNS解析出對應的伺服器ip地址。伺服器分為

專案部署nginx+uwsgi+django

1.概念 Django專案(web應用) web服務 nginx:高併發處理的好 Apache:穩定 LAMP:Linux Apache MySQL Python/Php/Per1 LNMP:Linux Nginx    My

django 高效能部署 nginx uwsgi

由於專案需求,需要接入高併發和域名,根據市場調研,最終決定使用uwsgi+nginx uwsgi官網介紹: uWSGI 是一個(巨大的) C 應用,所以你需要一個 C 編譯器(比如 gcc 或者 clang)和 Python 開發版標頭檔案。 首先安裝uws

Django專案部署nginx+uWSGI+django+virtualenv+supervisor釋出web伺服器

一、簡介 WSGI是Web伺服器閘道器介面。它是一個規範,描述了Web伺服器如何與Web應用程式通訊,以及Web應用程式如何連結在一起以處理一個請求,(接收請求,處理請求,響應請求) 基於wsgi執行的框架有bottle,DJango,Flask,用於解析動態HTTP請求 支援WSGI的伺服器

解決django專案部署nginx+uwsgi伺服器admin後臺樣式消失的問題

摘要: uwsgi為主要伺服器,nginx為反向代理伺服器 部署完成之後發現django後臺admin訪問時無樣式 解決方法如下: 1.先開啟django專案中settings.py檔案(/bl

Django專案上線:雲伺服器+Django+nginx+uwsgi

問題:在本地專案已經完成,現在我們部署到雲伺服器上,筆者因為是學生黨,所以使用了免費的華為雲,當然網上還有很多其他的可以選擇 一、雲伺服器的使用      1,連線雲伺服器,雲伺服器自帶遠端連線(不好用)           使用者名稱root,密碼是自己申請時候建

[學習筆記] Python 虛擬環境的安裝以及django專案部署nginx伺服器

安裝Python虛擬環境 sudo apt install python3-pip python3-dev build-essential sudo pip3 install --upgrade pip sudo pip3 install virtualenv MySQL

Django專案部署:Python3+Django2+Nginx+Uwsgi

一.版本說明 系統:Ubuntu16.04(阿里雲) Python:Python3.7 Django:Django2 Nginx:Nginx1.10.3 二.安裝軟體 該操作使用的是root賬號,如果不是root賬號,那麼需要在命令前面加sudo.示例:sud

從零開始在 Ubuntu 下部署 Nginx uWSGI Django 伺服器

環境:Ubuntu 16.04 1 準備工作 2 安裝並配置虛擬環境(本機) 2.1 更新軟體源 sudo apt-get update sudo apt-get upgrade update是更新軟體列表 upgra

Django專案部署(django+guncorn+virtualenv+nginx)

  一、說明     為了django專案部署到生產環境上,能夠穩定的執行,且能夠同時指出http和https的訪問,對django的部署進行了一些研究,決定採用django + gunicorn + virtualenv +nginx + mysql的方式進行部署,下面是本

django專案部署伺服器

如何在阿里雲上部署 Django 應用程式 概述與目的 此帖介紹瞭如何(利用 Ubuntu 作業系統)在阿里雲上啟動和部署 Django 應用程式。這兩個流程的詳細步驟說明如下所述:● 使用阿里雲管理控制檯啟動您的第一個 Linux 例項● 在此例項上安裝和部署 Django 應用程式 關

記錄一次nginx+uwsgi伺服器部署出現的502錯誤

在重新部署一臺伺服器的時候遇到一個問題,新手嘛,以前沒搞過,確實糾結了一下。記錄下此問題,方便以後檢視。 錯誤描述: 網頁開啟顯示的是502錯誤,檢視/var/log/nginx/error.log 出現很多類似*3 upstream prematurely closed

CentOS部署Nginx+uWSGI+Django

 本人環境CentOS 6.x,是剛安裝上的Linux系統。 CentOS IP:192.168.1.1 Python:2.7.11 Django:1.9.5 Nginx:1.10.1 進入伺服器後,要安裝一大堆東西。 pip(下載django,uwsgi需要用pip下

將一個Django專案部署伺服器

環境:Ubuntu 16.04,Python3.5,此處資料庫使用sqlite 步驟: 1.安裝Python3 sudo apt install python3.5 sudo apt update sudo apt instal

Djang專案部署阿里雲伺服器(四)之執行Django專案

完成之前的操作只能在你執行python3 manage.py runserver 0.0.0.0:8000的情況下大家才能訪問,如果關閉,則不能繼續訪問,顯然這並不符合我們的需求!所以,我們還要進行以下

Ubuntu下flask Django專案部署

Ubuntu下python框架 Django Flask 專案部署 使用nginx 一。下載安裝 nginx 方法1:https://blog.csdn.net/b_evan/article/details/72858149 方法2: 1.去nginx管網 2.選擇download

Python程式設計:將Flask專案部署到免費伺服器Heroku

官網也給出了步驟,不過需要brew下載客戶端,本文使用github部署,程式碼保持同步 頁面打不開就掛全域性代理 註冊賬號 https://www.heroku.com/ 新建APP https://dashboard.heroku.com/apps 按照以下路徑建立

J2ee專案部署到雲伺服器

J2ee專案部署到雲伺服器 前言: 此文為在windows下部署雲伺服器,大家應在本地電腦成功的部署過j2ee專案前提下來看本文。 第一步: 在阿里雲或騰訊雲購買一臺伺服器(可選擇windows或linux系統,根據需要),購買完後就像在自己的主機上一樣了,接下來開始環境的搭建。

打包springboot專案部署到雲伺服器以及其他一些操作

1.專案打包:https://blog.csdn.net/qq_34409900/article/details/80561277 2.新增yum源:https://help.aliyun.com/document_detail/51853.html?spm=a2c4g.11186623.6.820.RaT

Django專案部署 3

建立APP   在Django中,專案是網站的框架和容器,APP是一個具體的WEB應用程式,用來實現具體的功能和完成具體的事項,一個專案裡可以有多個APP,就像一個網站可以有文章系統,論壇系統,後臺系統,每一個APP也可以剝離出來作為獨立的模組元件。   python manage.py startapp