Python3 Flask+nginx+Gunicorn部署(上)

前言:一般在本地運行flask項目通常是直接python3 文件名.py,然后打開:http://127.0.0.1:5000 查看代碼結果

這次主要是記錄flask在python3 環境結合nginx +gunicorn在服務器上進行項目的部署

(一)運行環境:
虛擬機centos7
python3 環境
nginx
gunicorn
virtualenv
難點:nginx gunicorn的安裝配置

(二)nginx、gunicorn簡介
Nginx是一款輕量級的Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,并在一個BSD-like 協議下發行。其特點是占有內存少,并發能力強,事實上nginx的并發能力確實在同類型的網頁服務器中表現較好,中國大陸使用nginx網站用戶有:百度、京東、新浪、網易、騰訊、淘寶等

gunicorn是一個python Wsgi http server,只支持在Unix系統上運行,來源于Ruby的unicorn項目。Gunicorn使用prefork master-worker模型(在gunicorn中,master被稱為arbiter),能夠與各種wsgi web框架協作。

(三)軟件安裝
(1)首先安裝gunicorn

直接使用命令:pip install gunicorn

(2) 將gunicorn 加入到app.run()中,

這里我在路徑為:/home/flaskproject/flaskweb 下新建一個myweb.py 作為入口函數
代碼為:

from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'hello world'
if __name__ == '__main__':
from werkzeug.contrib.fixers import ProxyFix
app.wsgi_app = ProxyFix(app.wsgi_app)
app.run(
1
2
3
4
5
6
7
8
9
10


(3)用命令啟動gunicorn

在myweb.py路徑下,一定要記住是當前路徑下!!
方式一:

gunicorn myweb:app
1


python 虛擬環境的安裝:

pip install virtualenv
1
然后一頓騷操作:

mkdir flaskproject

cd flaskproject

virtualenv flaskprojectenv
1
2
3
4
5
然后進行激活:

source flaskprojectenv/bin/activate
1
正如下圖一樣的騷操作,之前我也是很少用虛擬環境的,現在感覺虛擬環境并沒有那么神秘,因為以前是很拒絕,不會用,不過這次是會用了,

退出虛擬環境的命令是:deactivate(這里我只是說一下)


這時候我們本地服務器看一下是否運行起來(已經有hello world):

[root@localhost flaskproject]# curl http://127.0.0.1:8000
hello world[root@localhost flaskproject]#
1
2
ctrl + c 停掉當前環境,我們使用第二種方式試一下

專門為處理高并發則要開多個進程和修改監聽端口方式:

gunicorn -w 4 -b 127.0.0.1:8000 入口文件名:app
1
如下代碼:

(flaskprojectenv) [admin@localhost flaskweb]$ gunicorn -w 4 -b 127.0.0.1:8000 myweb:app
[2018-05-28 10:57:11 -0400] [1813] [INFO] Starting gunicorn 19.8.1
[2018-05-28 10:57:11 -0400] [1813] [INFO] Listening at: http://127.0.0.1:8000 (1813)
[2018-05-28 10:57:11 -0400] [1813] [INFO] Using worker: sync
[2018-05-28 10:57:11 -0400] [1816] [INFO] Booting worker with pid: 1816
[2018-05-28 10:57:11 -0400] [1817] [INFO] Booting worker with pid: 1817
[2018-05-28 10:57:11 -0400] [1819] [INFO] Booting worker with pid: 1819
[2018-05-28 10:57:11 -0400] [1821] [INFO] Booting worker with pid: 1821
1
2
3
4
5
6
7
8
本地服務器已經運行了,但是我們遠程并不能進行訪問(win10訪問虛擬機)

?

說明端口號沒有打開,這時候我們需要把防火墻,端口號什么的都進行設置一下,可以看一下這篇博客:linux下nginx首次安裝遠程無法訪問

主要是兩個命令:

[root@localhost nginx-1.12.1] systemctl stop firewalld
[root@localhost nginx-1.12.1] systemctl stop iptalbes
1
2
接下來:我們進行nginx的配置安裝與gunicorn的相結合并進行部署。
---------------------
作者:xudailong_blog
來源:CSDN
原文:https://blog.csdn.net/xudailong_blog/article/details/80490137
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

轉載于:https://www.cnblogs.com/ExMan/p/10775415.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/394045.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/394045.shtml
英文地址,請注明出處:http://en.pswp.cn/news/394045.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

NOIP2011 鋪地毯

題目描述 為了準備一個獨特的頒獎典禮,組織者在會場的一片矩形區域(可看做是平面直角坐標系的第一象限)鋪上一些矩形地毯,一共有n張地毯,編號從 1 到n。現在將這些地毯按照編號從小到大的順序平行于坐標軸先后鋪設&…

java lock可重入_Java源碼解析之可重入鎖ReentrantLock

本文基于jdk1.8進行分析。ReentrantLock是一個可重入鎖,在ConcurrentHashMap中使用了ReentrantLock。首先看一下源碼中對ReentrantLock的介紹。如下圖。ReentrantLock是一個可重入的排他鎖,它和synchronized的方法和代碼有著相同的行為和語義&#xff0c…

matlab的qammod函數_基于-MATLAB下的16QAM仿真.doc

1.課程設計目的隨著現代通信技術的發展,特別是移動通信技術高速發展,頻帶利用率問題越來越被人們關注。在頻譜資源非常有限的今天,傳統通信系統的容量已經不能滿足當前用戶的要求。正交幅度調制QAM(Quadrature Amplitude Modulation)以其高頻…

POJ3264 【RMQ基礎題—ST-線段樹】

ST算法Code&#xff1a; //#include<bits/stdc.h> #include<cstdio> #include<math.h> #include<iostream> #include<queue> #include<algorithm> #include<string.h> using namespace std; typedef long long LL;const int N5e410;…

leetcode199. 二叉樹的右視圖(bfs)

給定一棵二叉樹&#xff0c;想象自己站在它的右側&#xff0c;按照從頂部到底部的順序&#xff0c;返回從右側所能看到的節點值。示例:輸入: [1,2,3,null,5,null,4] 輸出: [1, 3, 4] 解釋:1 <---/ \ 2 3 <---\ \5 4 <---解題思…

開發人員工作周報_如何增加找到開發人員工作的機會

開發人員工作周報In a recent job as a senior developer, I helped interview and hire many of my employer’s development team members. This is a brain dump of my advice based on those interviews.在最近擔任高級開發人員的工作中&#xff0c;我幫助面試和雇用了許多…

安全專家教你如何利用Uber系統漏洞無限制的免費乘坐?

本文講的是安全專家教你如何利用Uber系統漏洞無限制的免費乘坐&#xff1f;&#xff0c;近日&#xff0c;根據外媒報道&#xff0c;美國一名安全研究人員發現Uber上存在一處安全漏洞&#xff0c;允許發現這一漏洞的任何用戶在全球范圍內免費享受Uber乘車服務。據悉&#xff0c;…

flume介紹

flume 1.flume是什么 Flume:** Flume是Cloudera提供的一個高可用的&#xff0c;高可靠的&#xff0c;分布式的海量日志采集、傳輸、聚合的系統。** Flume僅僅運行在linux環境下** flume.apache.org(Documentation--Flume User Guide) Flume體系結構(Architecture)&#xff1a; …

threadx 信號量 應用_操作系統及ThreadX簡介.ppt

操作系統及ThreadX簡介操作系統及ThreadX簡介 軟件二部 2006.09 主要內容 多任務操作系統概述 ThreadX簡介 關于驅動的交流 操作系統概述 什么是操作系統 管理計算機的所有資源&#xff0c;并為應用程序提供服務的最重要的系統軟件 操作系統的目的 為用戶編程提供簡單的接口&am…

java中同步組件_Java并發編程(自定義同步組件)

并發包結構圖&#xff1a;編寫一個自定義同步組件來加深對同步器的理解業務要求&#xff1a;* 編寫一個自定義同步組件來加深對同步器的理解。* 設計一個同步工具&#xff1a;該工具在同一時刻&#xff0c;只允許至多兩個線程同時訪問&#xff0c;超過兩個線程的* 訪問將被阻塞…

maven學習資料

maven學習資料maven學習教程&#xff1a;What、How、Whyhttp://www.flyne.org/article/167Maven 那點事兒 https://my.oschina.net/huangyong/blog/194583項目管理工具&#xff1a;Maven教程http://www.flyne.org/article/884轉載于:https://www.cnblogs.com/zhao1949/p/634641…

leetcode127. 單詞接龍(bfs)

給定兩個單詞&#xff08;beginWord 和 endWord&#xff09;和一個字典&#xff0c;找到從 beginWord 到 endWord 的最短轉換序列的長度。轉換需遵循如下規則&#xff1a; 每次轉換只能改變一個字母。 轉換過程中的中間單詞必須是字典中的單詞。 說明: 如果不存在這樣的轉換序…

算法之旅 | 快速排序法

HTML5學堂-碼匠&#xff1a;前幾期“算法之旅”跟大家分享了冒泡排序法和選擇排序法&#xff0c;它們都屬于時間復雜度為O(n^2)的“慢”排序。今天跟大家分享多種排序算法里使用較廣泛&#xff0c;速度快的排序算法—— 快速排序法 [ 平均時間復雜度為O (n logn) ]。Tips 1&…

springmvd接收參數問題

問題描述&#xff1a; 好久不寫博客了&#xff0c;今天遇到一個問題&#xff0c;那就是post請求時&#xff0c;參數接收不到&#xff0c;當時我很納悶&#xff0c;看代碼&#xff1a; 就是這樣幾個參數&#xff0c;我使用postman請求時無法獲取參數&#xff1a; 報錯信息&#…

figma下載_如何在Figma中創建逼真的3D對象

figma下載by Gbolahan Taoheed Fawale通過Gbolahan Taoheed Fawale 如何在Figma中創建逼真的3D對象 (How to create realistic 3D objects in Figma) Prior to using Figma, I used Adobe Illustrator for most of my designs (like logos, mockups, illustrations, and so on…

OpenGL中的二維編程——從簡單的矩形開始

一、OpenGL的組成 圖元函數&#xff08;primitive function&#xff09;指定要生成屏幕圖像的圖元。包括兩種類型&#xff1a;可以在二維、三維或者四維空間進行定義的幾何圖元&#xff0c;如多邊形&#xff1b;離散實體&#xff1b;位圖。屬性函數&#xff08;attribute funct…

圓與平面的接觸面積_如果一個絕對的圓放在絕對的平面上,接觸面是不是無限小?...

這種問題其實并不難解答&#xff1a;如果你真的能找到一個絕對的圓還有一個絕對平的平面上&#xff0c;并且保證放上去之后圓和平面不會有任何變化&#xff0c;那么接觸面就可以是無限小&#xff01;如果不能&#xff0c;很抱歉&#xff0c;接觸面很顯然就不會是無限小&#xf…

leetocde1129. 顏色交替的最短路徑(bfs)

在一個有向圖中&#xff0c;節點分別標記為 0, 1, …, n-1。這個圖中的每條邊不是紅色就是藍色&#xff0c;且存在自環或平行邊。 red_edges 中的每一個 [i, j] 對表示從節點 i 到節點 j 的紅色有向邊。類似地&#xff0c;blue_edges 中的每一個 [i, j] 對表示從節點 i 到節點…

第38天:運算符、字符串對象常用方法

一、運算符 一元操作符 &#xff0c; --&#xff0c; &#xff0c; - 5 -6 邏輯操作符 !&#xff0c; &&&#xff0c; || 基本運算符 , -, *, /, % 關系操作符 >, <, >, <, , , !, ! 賦值 判斷 全等 條件操作符 &#xff08;三…

Redux Todos Example

此項目模板是使用Create React App構建的&#xff0c;它提供了一種簡單的方法來啟動React項目而無需構建配置。 使用Create-React-App構建的項目包括對ES6語法的支持&#xff0c;以及幾種非官方/尚未最終形式的Javascript語法 先看效果 這個例子可以幫助你深入理解在 Redux 中 …