日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Nginx >内容正文

Nginx

CentOS7部署Flask+Gunicorn+Nginx+Supervisor

發布時間:2023/12/20 Nginx 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CentOS7部署Flask+Gunicorn+Nginx+Supervisor 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. Git客戶端

Win10安裝git for windows

1.1 設置Git全局參數

打開Git Bash

$ git config --global user.name "Alice-HomePC" $ git config --global user.email "alice@gmail.com" 復制代碼

1.2 生成SSH Key

打開Git Bash,可使用-C選項指定公鑰的說明信息

$ ssh-keygen -t rsa -C "Alice-HomePC" 復制代碼

一直回車確認即可,秘鑰對默認保存在C:\Users\你的Win10用戶名\.ssh目錄下,其中id_rsa是私鑰(Private Key),要小心保管;id_rsa.pub是公鑰(Public Key),待會要上傳到VPS上,實現基于SSH無密碼登錄VPS。同理,如果你在Github或Coding上有代碼倉庫,也是先要將公鑰上傳過去,才能無密碼使用Git命令操作遠程倉庫。

2. 配置VPS

2.1 修改主機名

# hostnamectl set-hostname CentOS 或者: # vi /etc/hostname # hostnamectl 復制代碼

重新登錄.

2.2 修改SSH端口

# cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak # vi /etc/ssh/sshd_config 將默認22端口改為你指定的, 例如 Port 12345# systemctl restart sshd 復制代碼

2.3 禁用SSH密碼認證,改為秘鑰認證

首先需要將步驟1中生成的公鑰上傳到服務器,可以使用xmanager套件中的xftp上傳,假設上傳到/root目錄

1. 添加公鑰 # cd /root # mkdir ~/.ssh && chmod 700 ~/.ssh # touch ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys # cat id_rsa.pub >> ~/.ssh/authorized_keys2. 修改SSH配置文件 # vi /etc/ssh/sshd_config修改幾處地方,最終內容如下: # 禁用root登錄 PermitRootLogin no # 啟用密鑰驗證 RSAAuthentication yes PubkeyAuthentication yes # 指定公鑰數據庫文件 AuthorizedKeysFile .ssh/authorized_keys # 禁用密碼驗證 PasswordAuthentication no3. SSH重新加載配置文件 # systemctl reload sshd 復制代碼

此時,Win10可以通過xshell,無密碼登錄VPS了,且只能使用私鑰認證通過。

3. 安裝Python3

CentOS-7.3默認安裝的是Python-2.7, 我的Flask程序是基于Python3寫的,所以要再安裝Python3

1. 準備編譯環境 # yum -y install gcc make readline-devel sqlite-devel openssl openssl-devel zlib*2. 編譯安裝 # wget -P /root http://python.org/ftp/python/3.6.4/Python-3.6.4.tar.xz # tar xf Python-3.6.4.tar.xz # cd Python-3.6.4/ # ./configure --prefix=/usr/local/python-3.6 # make && make install # ln -s /usr/local/python-3.6/bin/python3.6 /usr/bin/python3 # ln -s /usr/local/python-3.6/bin/pip3.6 /usr/bin/pip3 復制代碼

更改pip安裝源為國內的源,比如aliyun

# mkdir ~/.pip # vi ~/.pip/pip.conf添加內容如下: [global] index-url = http://mirrors.aliyun.com/pypi/simple/[install] trusted-host=mirrors.aliyun.com 復制代碼

(可選)安裝IPython

  • Home Page
  • GitHub Project
  • Installing Jupyter Notebook
1. pip方式安裝(推薦), 該方式會有語法高亮等特性 # pip3 --version # pip3 install --upgrade pip # pip3 install ipython # ln -s /usr/local/python-3.6/bin/ipython3 /usr/bin/ipython32. 編譯安裝 # tar xf ipython-0.13.1.tar.gz # cd ipython-0.13.1/ # python3 setup.py install # ln -s /usr/local/python-3.6/bin/ipython3 /usr/bin/ipython3 復制代碼

4. 安裝MongoDB

官方文檔

1. 配置repo源 # vi /etc/yum.repos.d/mongodb-org-3.6.repo內容如下: [mongodb-org-3.6] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc2. 安裝并啟動服務 # yum install -y mongodb-org # systemctl start mongod.service # systemctl enable mongod.service 復制代碼

5. Git服務端

1. 安裝 # yum install -y git2. 創建裸倉庫 # mkdir /home/git && cd /home/git # git init --bare flask_project.git 復制代碼

我在Win10上已經開發好了Flask程序,待會上傳到此git倉庫中,應用程序代碼準備部署到/home/www/flask_project,并通過git的hooks當客戶端每次提交代碼后,自動同步倉庫中的代碼到應用部署的位置 Simple automated GIT Deployment using GIT Hooks

1. 創建代碼部署目錄 # mkdir -pv /home/www/flask_project2. 創建hooks # vi /home/git/flask_project.git/hooks/post-receive內容如下: #!/bin/bash TRAGET="/home/www/flask_project" GIT_DIR="/home/git/flask_project.git" BRANCH="master"while read oldrev newrev ref do# only checking out the master (or whatever branch you would like to deploy)if [[ $ref = refs/heads/$BRANCH ]];thenecho "Ref $ref received. Deploying ${BRANCH} branch to production…"git --work-tree=$TRAGET --git-dir=$GIT_DIR checkout -felseecho "Ref $ref received. Doing nothing: only the ${BRANCH} branch may be deployed on this server."fi done3. 賦權 # chmod +x /home/git/flask_project.git/hooks/post-receive 復制代碼

6. 上傳代碼

打開Git Bash,準備把服務器上的flask_project.git倉庫(目前為空)克隆下來。Git默認使用SSH協議且端口22,由于我們剛修改了服務器的SSH端口,所以克隆時要指定修改后的端口號

6.1 克隆遠程倉庫

**方法1: **

$ git clone ssh://root@VPS的IP或域名:VPS的SSH端口號//home/git/flask_project.git 復制代碼

**方法2: ** 在Win10保存SSH秘鑰對的目錄下創建配置文件 C:\Users\你的Win10用戶名\.ssh\config

host VPS的IP或域名 port VPS的SSH端口 復制代碼

然后執行克隆命令:

$ git clone root@VPS的IP或域名:/home/git/flask_project.git 復制代碼

6.2 提交代碼

克隆后會在當前目錄下生成 flask_project 目錄,把開發好的flask代碼拷貝到這里面,并指定哪些文件不提交到git倉庫,在git bash中運行:

$ cd flask_project $ vi .gitignore 比如我的規則: .idea/ __pycache__/ uploads/ venv3/ 復制代碼

提交代碼:

$ git add . $ git commit -m "initial" $ git push 復制代碼

你會發現/home/www/flask_project目錄下會自動拷貝git倉庫中master分支的最新代碼過來。

7. 調試程序

7.1 準備virtualenv環境

# pip3 install virtualenv # ln -s /usr/local/python-3.6/bin/virtualenv /usr/bin/virtualenv # cd /home/www/flask_project # virtualenv --no-site-packages --python=/usr/bin/python3 venv3 復制代碼

7.2 安裝相關python包

# source venv3/bin/active (venv3)# pip install flask 依次安裝完所有的依賴包后, (venv3)# pip freeze > requirements.txt 復制代碼

7.3 測試用Flask自帶的服務器能否運行

(venv3)# python manage.py runserver -h 0.0.0.0 -p 80 復制代碼

如果你能通過VPS的IP正常訪問Flask應用,那么就可以進行下一步,使用Gunicorn替代Flask自帶的開發服務器

8. Gunicorn

  • 官網
  • 文檔

8.1 安裝

(venv3)# pip install gunicorn 復制代碼

8.2 創建包含應用入口app的模塊文件

一般我們開發時,都是使用manage.py,里面有flask-script方便調試,生產環境要再創建一個模塊,比如:

# vi wsgi.py內容如下: import osfrom app import create_app### # 調用工廠函數,初始化Flask程序實例,默認使用生產環境配置 ### app = create_app(os.getenv('FLASK_CONFIG') or 'production')if __name__ == "__main__":app.run(host='0.0.0.0') 復制代碼

那么使用gunicorn命令行來啟動Flask非常簡單:

(venv3)# gunicorn -w 3 wsgi:app -b 0.0.0.0:80 說明: -w 3 是啟用3個進程,建議是CPU核數*2 + 1 wsgi:app 其中wsgi代表當前目錄下的wsgi.py模塊,后面的app代表wsgi.py模塊里面的Flask應用app 復制代碼

如果你能通過VPS的IP正常訪問Flask應用,那么通過指定gunicorn配置文件來啟動Flask,比如:

# mkdir deploy # vi deploy/gunicorn.conf.py內容如下: import multiprocessing# bind = '127.0.0.1:8001' bind = 'unix:/run/gunicorn.sock' workers = multiprocessing.cpu_count() * 2 + 1 # daemon = True pidfile = '/run/gunicorn.pid' loglevel = 'info' errorlog = '/tmp/gunicorn-error.log' accesslog = '/tmp/gunicorn-access.log' access_log_format = '%(h)s %(l)s %(u)s %(t)s "%(r)s" %(s)s %(b)s "%(f)s" "%(a)s"' 復制代碼

更詳細的配置可以參考Gunicorn官方示例

那么,此時啟動Flask變成:

(venv3)# gunicorn wsgi:app -c deploy/gunicorn.conf.py 復制代碼

**想查看完整的內容,請訪問我的個人博客: www.madmalls.com/blog/post/d… **

總結

以上是生活随笔為你收集整理的CentOS7部署Flask+Gunicorn+Nginx+Supervisor的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 操你啦在线视频 | 精品乱人伦一区二区三区 | 一级黄色片大全 | 欧美天堂在线观看 | 九九九在线视频 | 久久aⅴ乱码一区二区三区 亚洲成人18 | 在线免费观看日韩av | 国产精品资源在线观看 | 亚洲一区二区三区四区在线播放 | 久久爱一区 | 中文字幕一区二区三区夫目前犯 | 国产第一草草影院 | 男人和女人搞鸡 | 国产真实自拍 | 天天操夜夜操夜夜操 | 黄色片在线免费观看 | 色人综合 | 天天av天天操 | 伊人久久一区二区三区 | 免费在线成人av | 日本人性爱视频 | 日韩伦理一区二区三区 | 我的大叔| 老女人黄色片 | 日本加勒比一区二区 | 黄色日批网站 | av福利在线播放 | 久久伊人成人网 | 日本福利片在线观看 | 欧美成人午夜 | 国产欧美大片 | 久久久国产精品一区二区三区 | 日日做夜夜爽毛片麻豆 | 久久乐视频| 99国产精品久久久久久久久久久 | 久草网在线观看 | 91视频免费在线观看 | 国产精品1000部啪视频 | 日本一本在线观看 | 色www.| 97成人精品 | 国产精品色片 | 无码精品人妻一二三区红粉影视 | 9久9久9久女女女九九九一九 | 免费在线看污片 | 久久久无码精品亚洲无少妇 | 最新高清无码专区 | 91刺激视频| 香蕉久草 | 免费无遮挡在线观看视频网站 | 俺去日 | 米奇影视第四色 | 帮我拍拍漫画全集免费观看 | 天堂中文字幕免费一区 | 欧美日韩精品三区 | 国产福利片在线观看 | 麻豆影视 | 九九久久国产精品 | 台湾佬美性中文娱乐网 | 国产成人无码www免费视频播放 | 国产伦精品一区二区三区精品 | 国产美女无遮挡永久免费 | 你懂的在线观看网站 | 一区二区午夜 | 男人用嘴添女人下身免费视频 | 精品在线视频一区二区 | 玖玖在线观看 | 自拍偷拍电影 | 日韩在线观看网址 | 高清视频在线播放 | 亚洲午夜精品一区二区三区 | 三上悠亚 电影 | 亚洲成年人网 | 五月婷婷亚洲 | 国产成人精品免费在线观看 | 精品一区不卡 | 一直草| 最近日韩中文字幕中文 | 亚洲精品在线播放视频 | jzjzjzjzj亚洲成熟少妇 | 久久99精品国产麻豆91樱花 | 欧美日韩性视频 | 五月在线视频 | 亚洲视频一二三四 | 国产对白videos麻豆高潮 | 日本亲与子乱xxx | 日韩精品999 | 久久久久1 | 久久久久麻豆v国产精华液好用吗 | 久久久久久久久福利 | 国产午夜福利一区 | 日吊视频| 久久影视精品 | 成人黄色在线观看 | 久久噜噜色综合一区二区 | 色综合天天综合网天天狠天天 | 日韩欧美中文字幕一区二区三区 | av天堂一区 | 欧美91精品久久久久国产性生爱 |