CentOS 傻瓜式部署uWSGI + nginx + flask

来源:https://www.cnblogs.com/jiajin/archive/2018/03/05/8507083.html
-Advertisement-
Play Games

交代背景 這篇帖子是為了提供我自己的July Novel站點的小說數據支撐。解決分散式部署爬蟲程式的繁瑣過程,由於本人對shell編程並不熟悉,故而先逐步記錄操作步驟,通過以下操作達到節省時間的方式。 三個前提: 1.首先是四台雲伺服器,全部安裝Cent OS 7.4, 四台伺服器中一臺主伺服器,三 ...


交代背景

這篇帖子是為了提供我自己的July Novel站點的小說數據支撐。解決分散式部署爬蟲程式的繁瑣過程,由於本人對shell編程並不熟悉,故而先逐步記錄操作步驟,通過以下操作達到節省時間的方式。
三個前提:
1.首先是四台雲伺服器,全部安裝Cent OS 7.4, 四台伺服器中一臺主伺服器,三台從伺服器,伺服器都是剛剛全新安裝,並且,主伺服器已經安裝MariaDB和Redis資料庫;
2.其次是客戶端連接遠程伺服器使用的是Xshell,通過Xshell同時打開多個標簽頁,並且通過撰寫欄發送命令,每次發送四台伺服器都同時收到指令開始執行
3.待部署的代碼已經躺在github上了。

具體實施步驟

下麵我會逐步交代如何操作

獲取管理員許可權
sudo -s

1.預裝接下來會用到的軟體

#gcc編譯器
#源碼方式安裝nginx所需。
yum install gcc gcc-c++
#nginx rewrite 需求 
yum install -y pcre-devel
#安裝anaconda3 解壓需求(貌似Azure的centos雲伺服器內置了,而Aliyun似乎)
yum install -y zlib-devel
#版本控制,不談了
yum install -y git
#控制uWSGI停止啟動的腳本需要
yum install -y psmisc
#網站上https必備。建議上。
yum install -y openssl openssl-devel

2.編譯nginx

mkdir /home/web
mkdir /home/download
cd /home/download

wget https://nginx.org/download/nginx-1.12.2.tar.gz
tar zxvf nginx-1.12.2.tar.gz
cd nginx-1.12.2

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make
make install

3.安裝anaconda3(版本很關鍵,最新版5.10.1跟我這套配置有點衝突,建議用我這個版本5.0.1)

cd ../
wget https://repo.continuum.io/archive/Anaconda3-5.0.1-Linux-x86_64.sh
bash Anaconda3-5.0.1-Linux-x86_64.sh
#激活環境變數
source ~/.bashrc
#創建虛擬python環境
conda create --name web
#跳轉到新建的web環境下
source activate web

4.clone我的JulyNovel後端源代碼

cd /home/web

git clone https://github.com/congjinruo/JulyNovel.git
cd JulyNovel

pip install -r requirements.txt
nginx和uWSGI需求的幾個日誌文件生成一下
mkdir logs
touch logs/access.log
touch logs/error.log
touch logs/uwsgi.log

5.三個配置文件的單獨設置,我把這三份文件詳細設置放在我的github README.md上。

JulyNovel Github

#配置nginx
vim /usr/local/nginx/conf/nginx.conf
#配置JulyNovel的MariaDB、Redis、Aliyun OSS的連接方式
vim /home/web/JulyNovel/config.py
#編輯管理uWSGI運行啟動的腳本
vim /home/web/manage_uwsgi.sh

6.開啟uWSGI和nginx

uwsgi --ini /home/web/JulyNovel/uwsgiconfig.ini
/usr/local/nginx/sbin/nginx

7.最後,別忘了伺服器安全組埠入站規則開啟。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 所需前置知識: HTML、CSS、JS、Vue、ES6、Npm、Webpack、Node、Express、Mongodb 項目整體架構: IDE:webstorm; 項目建立過程(cmd常用命令行指令): node的安裝 下載連接:https://nodejs.org/en/ npm的安裝 npm ...
  • 一、常用的表單驗證指令 1. 必填項驗證 某個表單輸入是否已填寫,只要在輸入欄位元素上添加HTML5標記required即可: 2. 最小長度 驗證表單輸入的文本長度是否大於某個最小值,在輸入欄位上使用指令ng-minleng= "{number}": 3. 最大長度 驗證表單輸入的文本長度是否小於 ...
  • 在移動端支付密碼或輸入密碼時需要彈出虛擬鍵盤,有些設備在鍵盤彈出時會把文本框擋住,為了相容各種設備,所以需要自製軟鍵盤來替代虛擬鍵盤。 以下是我自製的一個小demo,只能順序輸入和倒序清除,或全部清空; html代碼: js代碼: 效果圖如下: ...
  • JsChart是什麼? JSChart能夠在網頁上生成圖標,常用於統計信息,十分好用的一個JS組件。 使用JsChart 一。導入jscharts.js 二。編寫jscharts.jsp測試頁面 1. 下載JScharts庫 從官網下載JScharts庫,我們使用的是壓縮包裡面的jscharts.j ...
  • 報錯 原因 缺少local.properties文件(SDK location) 解決 方法一:在android Studio中打開項目android目錄,會自動創建local.properties文件。 方法二:在android Studio根目錄中複製一份local.properties到rea ...
  • 一、MSA簡介 1.1、MSA是什麼 微服務架構MSA是Microservice Architecture的簡稱,它是一種架構模式,它提倡將單一應用程式劃分成一組小的服務,服務之間互相通訊、互相配合,為用戶提供最終價值。它與SOA之間的區別如下: SOA實現 微服務架構實現 企業級,自頂向下開展實施 ...
  • Constructor Constructor Constructor Constructor Constructor Constructor Constructor Constructor Constructor Rectangle Rectangle Rectangle Rectangle Re ...
  • http://python3-cookbook.readthedocs.io/zh_CN/latest/copyright.html ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...