1. 程式人生 > >Centos7系統,Nginx+uwsgi+flask框架部署web應用

Centos7系統,Nginx+uwsgi+flask框架部署web應用

1. 簡單介紹

起初我是嘗試在Win*dows *Server 2012上面部署的,因為我的學習和開發環境大多是在win上進行的,我嘗試了iis和apache但都因為繁瑣的操作放棄了。而在linux上,nginx+uwsgi是最常見的部署方式之一。整個部署過程大體分為三部分。
* nginx,uwsgi安裝。
* 上傳app檔案。
* nginx,uwsgi配置。

2. nginx,uwsgi安裝

nginx安裝過程可以參照https://jesskarl.github.io/2017/05/13/nginx/
uwsgi安裝過程就相對簡單多了,只要運用python的pip就可以了。但是安裝之前需要安裝c編譯器和python開發標頭檔案。
如果你已經成功安裝過nginx了,那麼c編譯器就不需要再次安裝了。
sudo yum install python-devel


安裝uwsgi。
pip install uwsgi
uwsgi官方文件地址:http://uwsgi-docs.readthedocs.io/en/latest/

3.上傳檔案到伺服器

在windows系統下,安裝WinSCP,或者百度其他類似軟體。需要注意的一點,伺服器一定要開啟相應的埠,一般的傳輸協議是22,21埠。
我的專案根目錄為:
~/www/website1/
建議像我這樣的新手查詢一下關於centos的目錄結構的介紹,和基本命令,基本的知識還是要了解的。
我的伺服器是用的騰訊雲主機,所以在系統的防火牆開啟埠的情況下,還要建立相應的安全組。具體方法可以參考伺服器提供商的幫助文件。
安裝虛擬環境,安裝各種程式依賴,過程類似開發環境搭建。

4.nginx,uwsgi配置

開啟nginx配置檔案nginx.conf,這個檔案預設位置為安裝目錄下的conf目錄中。只需要修改server塊下的location塊內容就可以,若需要其他的配置,日誌,多應用等可以參考nginx官方文件,或者相應書籍。
location塊配置如下。

    location / {
    include uwsgi_params;
    uwsgi_pass 127.0.0.1:3031;
     }

接下來在專案根目錄下新建uwsgi.ini檔案用以啟動uwsgi。

[uwsgi]
master = true
socket = 127.0
.0.1:3031
virtualenv = ./venv wsgi-file = manage.py callable = app processes = 4 threads = 2 stats = 127.0.0.1:919

socket選項一定要與nginx,conf中相同。
如果用了虛擬環境,將virtualenv選項設定你的虛擬環境位置。沒用虛擬環境則不加次條。
wsgi-file,執行專案開啟的第一個檔案。
callable ,manage.py中你建立的app的名字。
程序和執行緒根據硬體效能設定相應數值。
把工作目錄定位到nginx安裝目錄下,執行nginx:
./sbin/nginx
把工作目錄定位到專案根目錄下,
uwsgi uwsgi.ini
如果沒有報錯,那麼在瀏覽器中輸入你的伺服器ip或者解析到該ip的域名即可訪問你的應用了。

5.可能遇到的問題

  • 配置完成後,連線失敗。
    可能伺服器沒有開放80號埠,這個是預設埠。開啟方法如下
    firewall-cmd --zone=public --add-port=80/tcp --permanent
    命令作用:
    –zone :作用域
    –add-port : 新增的埠,格式為 埠/通訊協議
    –permanent : 永久生效,重啟後不失效。
    (21,22埠開啟方法相同)
  • nginx配置修改後一定要重啟服務。
  • 如果需要開機啟動,可以使用Supervisor。

相關推薦

Centos7系統Nginx+uwsgi+flask框架部署web應用

1. 簡單介紹 起初我是嘗試在Win*dows *Server 2012上面部署的,因為我的學習和開發環境大多是在win上進行的,我嘗試了iis和apache但都因為繁瑣的操作放棄了。而在linux上,nginx+uwsgi是最常見的部署方式之一。整個

Nginx+Uwsgi+Flask在阿裏雲服務器上的部署

warn down 安裝過程 oot 上傳文件 open 移動 gin ica 先說明一下,我用的系統是centos6.8,個人感覺centos的系統配置還是挺簡單的。。。不過存在很多防火墻的問題,下邊一步步來說。。。。 centos上應該是默認已經安裝了Python2.6

Nginx+uwsgi+flask部署

系統環境:Centos6.7、Python2.7、pip2.7(安裝方式參考前一篇) 安裝 安裝flask pip2.7 install flask 安裝uwsgi #安裝 pip2.7 install uwsgi #驗證安裝 u

五步教你實現使用Nginx+uWSGI+Django方法部署Django程序

設置 wsgi alias admin 生效 server static 出現 mar 新建一個XML文件: djangochina_socket.xml,將它放在/data/www/org_management目錄下: Nginx采用8077端口與uWSGI通訊,請確保此

Python3+django+nginx+uwsgi使用場景部署

backup tex gen rust 進程 靜態文件 lang 分享圖片 /etc/ 1 環境介紹和準備Python3+django+nginx+uwsgi使用場景部署 當我們寫完一套完整的網站功能,我們需要實時在生產環境上線,並需要容納高並發的訪問請求。所以我們需要

nginx uwsgi flask相關配置

1.3 線程 keep icon ges tar tro pki 獲取 一、安裝Nginx 在 /home/download下下載壓縮包 wget https://nginx.org/download/nginx-1.12.2.tar.gz 解壓縮 tar zxvf ngi

雲效(阿裏雲)流水線 + nginx + uWsgi + flask + python3 基礎環境搭建 --備忘

3.6 分享圖片 fff urn art conf con write sqlite 一、開發環境搭建 1、安裝python3 yum -y groupinstall "Development tools" yum -y install zlib-devel

centos7+python3.6+nginx+uwsgi+django2的搭建筆記

生命周期 主動 ron 大量 pidfile 技術分享 順序 multi 筆記 公司需上線一套python編寫的代碼,需要給搭建一套環境 ,本次采用centos7+python3.6+nginx+uwsgi2+django2+mysql

用戶登陸系統采用FlaskSQLitehmac編寫

varchar for har range ima new char name from # -*- coding: utf-8 -*-"""Created on Sat Jun 30 10:56:19 2018@author: lewisliu"""from flask

Ubuntu+Nginx+uWSGI+Flask應用

gen art csdn 完成 進程 logs apt-get virtual style Ubuntu 18.04,Nginx 1.14.0,uWSGI 2.0.17.1,Flask 1.0.2,Python 3.6.5, 多日未更新博客,就是在忙著把自己的Flask

Nginx+uwsgi+celery+supervisor部署Django前後端分離項目

and alt mkdir 動靜 系統盤 keepaliv pre tde 修改 本實驗實現了負載均衡、反向代理、動靜分離,還實現了根據客戶端設備user-agent進行轉發,也就是移動端和PC端訪問的頁面不一樣。 1. 項目部署邏輯圖 2. 環境準備 服務器:6臺VM操

記錄一下在ubuntu 上配置nginx+uwsgi+flask出現的一點問題.

main thread acc sta pre cati 記錄 location crt 還沒有解決 現在的情況很奇怪, 配置uwsgi通過啟動腳本啟動後,無法正常運行,相同代碼在centos上完全沒有問題,同樣用的是venv的環境, ubuntu,貼上nginx配置和

ubuntu16.04下nginx+uwsgi+django伺服器部署

1.python開發環境 安裝pyenv,python,virtualenv,需要使用python虛擬環境env365 2.安裝配置nginx 安裝 sudo apt-get install nginx 配置 cd /etc/nginx/sites-available cp

flask框架部署(Windows+Aapche+mod_wsgi)

參考 [1]Windows下Flask+Apache+mod_wsgi部署Flask專案 閱讀此文,部署環境新增模組時出錯。解決辦法,參考[2] [2]Apache 載入mod_wsgi.so出錯,什麼原因? 詳細步驟 Step1:下載Apache並解壓 地址:https:/

centos7和win10雙盤雙系統打不開centos7系統老是停留在黑屏轉圈位置解決辦法

1.重啟系統時候在如下頁面選擇你要進的核心,按 E ,grub編輯頁面。 http://img.my.csdn.net/uploads/201709/03/1504438099_7830.png 2.找到linux16那行 在LANG=zh_CN.UTF-8 空格 加上

Centos7系統oracle12c自啟動設定

--- 能夠實現開機啟動Oracle--- 重啟、關閉伺服器的時候能先關閉--- Oracle可以用service命令啟、停Oracle1. 修改Oracle系統配置檔案:/etc/oratab //oratab格式:SID:ORACLE_HOME:AUTO# vi /et

Docker構建nginx+uwsgi+flask映象(一)

前言 筆者之前是從事Java方面的工作,自從18年5月左右來到新的公司,接觸到Python,被其簡單優雅的語法風格深深吸引,同時,新公司也幫助筆者開啟Docker世界的大門,讓筆者體會到“一次打包,到處執行”的快感。出於對Docker和Python的喜愛,寫下這篇文章。 基礎工作 這裡,筆者會先教大家用

Docker構建nginx+uwsgi+flask映象(二)

Dockerfile搭建環境並打包應用 在上一章Docker構建nginx+uwsgi+flask映象(一)的學習中,我們學會用命令列一句一句在alpine環境中搭建nginx+uwsgi+flask服務,但這體現不了Docker為我們帶來的便利,而本章,我們將通過Dockerfile來製作基礎映象和打包應

springboot-整合vuenginx前後端分離部署

springboot-整合vue,nginx前後端分離部署 文章目錄 springboot-整合vue,nginx前後端分離部署 1.nginx 1.1nginx的安裝 1.2nginx的基本配置 1.3n

使用Nginx+uWSGI+Django方法部署Django程式

Django的部署可以有很多方式,採用nginx+uwsgi的方式是其中比較常見的一種方式。 在這種方式中,我們的通常做法是,將nginx作為伺服器最前端,它將接收WEB的所有請求,統一管理請求。nginx把所有靜態請求自己來處理(這是NGINX的強項)。然後,NGIN