nginx負載均衡教程之從不用root編譯開始! + flask + uwsgi 部署高併發網路服務!
- 編譯使用nginx without root!
之前閱讀了很過國內的部落格,對nginx在linux下的使用都是一筆帶過,這個給後面的使用造成了很大的麻煩!尤其是在不用root怎麼安裝這塊!本部分詳細的講解,供新人使用!此處參考了一個國外人的[wiki](https://gist.github.com/simonw/92481),個別的時候需要翻牆才能看啊!
本文的所有的參考連結:
https://www.nginx.com/resources/admin-guide/installing-nginx-open-source/
https://gist.github.com/simonw/92481
http://nginx.org/en/docs/http/load_balancing.html
1,###此package不用install,只要解壓即可
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gz
tar -zxf pcre-8.39.tar.gz
2,###同上
wget http://www.openssl.org/source/openssl-1.0.2f.tar.gz
tar -zxf openssl-1.0.2f.tar.gz
3,###同上
wget http://zlib.net/zlib-1.2.8.tar.gz
tar -zxf zlib-1.2.8.tar.gz
4,###安裝nginx
wget "http://nginx.org/download/nginx-1.10.1.tar.gz"
tar -zxvf nginx-1.10.1.tar.gz
mkdir -p nginx_tool
cd nginx-1.10.1
./configure --prefix=../nginx_tool/ --with-pcre=(剛才解壓的pcre的絕對路徑) --with-zlib=(剛剛解壓的zlib路徑) --with-openssl=(剛才解壓的openssl的絕對路徑)
make
make install
當完成上面這些操作的時候,nginx就會安裝在給定的nginx_tool路徑下,install完成以後,可以檢視下nginx_tool中都有哪些directions。一般情況下,如下所示:
$ls nginx_tool/
conf html logs sbin
#恭喜你,sbin中的nginx就是編譯好的可執行的工具,conf中的nginx.conf就是預設的配置檔案,這個檔案在後面會有很大的用處!
- 使用flask 做個簡單的demo進行nginx嘗試
第一步,就是用flask做個簡單的demo;
如果您沒有安裝flask,或者沒有任何對flask使用的經驗,請預先安裝flask!
方法是:
pip install flask --user #方法,可以不用root進行安裝
mkdir -p test_flask
cd test_flask
vim test_flask.py
在test_flask.py中輸入以下內容:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'Hello Python 1' #此處的數字是後面用來驗證負載均衡使用的!
if __name__ == '__main__':
app.run(host="此處換成您機器的ip,如果不知道怎麼獲取,請查詢ifconfig命令使用方法",port=9090)
執行python test_flask.py ,當你看到下面提示的時候,表示你的第一個flask demo就完成了;
* Running on http://yourip:9090/ (Press CTRL+C to quit)
第二步,就是用nginx,把咱們的flask demo部署上來了
在niginx conf directions下新建一個檔案,叫做test_nginx.conf
輸入以下內容
worker_processes 20;
events {
worker_connections 1024;
}
http {
upstream back {
#least_conn;
server 127.0.0.1:8597 weight=1;
server 127.0.0.1:8598 weight=1;
server 127.0.0.1:8599 weight=1;
}
server {
listen 9876;
server_name 1.1.1.3:9876; #公網地址,此處應該將公網地址繫結為您計算機對外網公開的地址,例如10.109.108.134;
location / {
proxy_pass http://back; # 指向uwsgi 所應用的內部地址,所有請求將轉發給uwsgi 處理
}
}
}
在後臺啟動3個test_flask.py的程序,地址都是127.0.0.1,埠號分別是8597,8598,8599,每個指令碼中的“hello world ”字串中加入不同的數字,為了後面驗證負載均衡使用;
而後按照下面的步驟執行;
cd nginx/sbin
./nginx -c ../conf/test_nginx.conf
而後,開啟您的瀏覽器,輸入ip:9876您就會看到“hello world 1”,“hello world 2”,“hello world 3”,在您的python web server上來回切換了!更多的使用nginx負載均衡的文件,詳見文章開頭提供的連結!
第二步,就是標準化,用uwsgi規範化伺服器部署
# uwsgi使用教程
- 什麼是uwsgi
from flask import Flask,request
app = Flask(__name__)
@app.route('/welcome',methods = ["GET"])
def hello_world():
return 'Hello World!'
@app.route('/answer',methods=["POST"])
def ans():
data = request.form.get("data")
return "From server: " + data
if __name__ == '__main__':
app.run(host="ip",port=8970)
怎麼看這段code都是簡陋的,存在著下面的幾個問題:
1,連結超時怎麼辦?這個server是否還會穩定?
2,如果這個server我想限制連結的數量又該怎麼辦?
3,限制連結的最大時長呢?
4,更改外部的連結協議呢?
5,and so on ……
- 從安裝uwsgi開始
pip install uwsgi --user
- 託管flask app
$uwsgi -s 10.101.167.107:8990 -w main:app --buffer-size=32768 --protocol http --harakiri 60 --limit-post 65536 -p 1
*** Starting uWSGI 1.4.9 (64bit) on [Mon Aug 22 19:58:49 2016] ***
compiled with version: 4.8.5 20150623 (Red Hat 4.8.5-4) on 05 August 2016 22:14:14
os: Linux-3.10.0-327.ali2000.alios7.x86_64 #1 SMP Tue Dec 29 19:54:05 CST 2015
nodename: rs1d07474.et2sqa
machine: x86_64
clock source: unix
pcre jit disabled
此時在瀏覽器中開啟 http://ip:8970/welcome , 同樣會顯示hello world!終於,您的flask app正式的託管在了uwsgi這個server上,走出了正式化的一步!
這個時候,您就可以使用將第二步中的簡陋的python webserver ,用uwsgi託管之後在使用nginx負載均衡了!
uwsgi的引數的介紹文件1:uwsgioption.html
uwsgi的快速開始文件1:WSGIquickstart.html
相關推薦
nginx負載均衡教程之從不用root編譯開始! + flask + uwsgi 部署高併發網路服務!
編譯使用nginx without root! 之前閱讀了很過國內的部落格,對nginx在linux下的使用都是一筆帶過,這個給後面的使用造成了很大的麻煩!尤其是在不用root怎麼安裝這塊!本部分詳細的講解,供新人使用!此處參考了一個國外人的[wiki
nginx負載均衡和mysql主主被動模式基礎架構綜合部署
nginx負載均衡 mysql主從(主主被動互備模式) 1.結構思路 準備用5個虛機,一個虛機安裝nginx來配置負載均衡,兩個虛機做web服務器,另外兩個虛機,安裝mysql,做主主被動配置,每次web只讀取一個mysql服務。 2.具體實施步驟 用vmware最小化安裝5個虛機,我用的是c
通過nginx負載均衡訪問從庫tomcat7的日誌
nginx負載均衡 tomcat 日誌 一從庫操作以 /mnt/local/tomcat_8080 舉例1修改context.xml文件 重啟tomcat2 建立軟連接 二主庫操作修改負載均衡vi /etc/nginx nginx.confworker_processes1;events {worker_c
負載均衡系列之(二)nginx
永遠 實例 表示 特性 反向代理服務器 依據 forward 訪問 子郵件 Nginx是一款輕量級的Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,並在一個BSD-like 協議下發行 其特點是占有內存少,並發能力強,事實上nginx的並發能力
NGINX 負載均衡 之九
ngx 算法 均衡 http 節點 backup pst 指定 自己 1、Nginx 負載均衡的組件模塊 ngx_http_proxy_module:proxy代理模塊,用於把請求後拋給服務器節點或upstream服務器池。ngx_http_upstream_module:
NGINX 負載均衡監測節點狀態 之 十一
圖片 ref erer oct ica figure 1.3 work app 1、監測負載均衡節點作用 用於提供主動式後端服務器健康檢查,通過它可以檢測後端realserver的健康狀態,如果後端realserver不可用,則所有的請求就不會轉發到該節點上。 2、依賴模塊
Linux之nginx負載均衡
Nginx負載均衡概述 Web伺服器,直接面向用戶,往往要承載大量併發請求,單臺伺服器難以負荷,我使用多臺WEB伺服器組成叢集,前端使用Nginx負載均衡,將請求分散的打到我們的後端伺服器叢集中,實現負載的分發。那麼會大大提升系統的吞吐率、請求效能、高容災 Nginx要實現負載均
Nginx+Tomcat搭建高效能負載均衡叢集之枯藤老樹
--枯藤老樹昏鴉,小橋流水人家,古道西風瘦馬。夕陽西下,斷腸人 在天涯。 一、 工具 nginx-1.8.0 apache-tomcat-6.0.33 二、 目標 實現高效能負載均衡的Tomcat叢集:
centos下從零配置nginx(負載均衡)
centos下從零配置nginx(負載均衡) nginx下載安裝 先下載依賴環境,不然裝不上 yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-
Keepalived+LVS+Nginx負載均衡之高可用
一、Keepalived介紹 Keepalived是分散式部署系統解決系統高可用的軟體,結合LVS(Linux Virtual Server)使用,其功能類似於heartbeat,解決單機宕機的問題。 二、Keepalived技術原理 keepalived是以VRRP協議為實現基礎
nginx負載均衡之加權輪詢
當nginx作為代理伺服器時,需要將客戶端的請求轉發給後端伺服器進行處理,如果後端伺服器有多臺,那如何選擇合適的後端伺服器來處理當前請求,也就是本篇文章要介紹的內容。nginx儘可能的把請求分攤到各個後端伺服器進行處理,以保證服務的可用性和可靠行,提供給客戶端
三、netcore跨平臺之 Linux配置nginx負載均衡
前面兩章講了netcore在linux上部署以及配置nginx,並讓nginx代理webapi。 這一章主要講如何配置負載均衡,有些步驟在前兩章講的很詳細了,所以這一章我就不會一個個截圖了。 因為本人只有一個伺服器。所以我會在同一臺伺服器上部署兩套差不多的例項。 同樣的程式碼,我們在Program.cs
nginx負載均衡配置
war eal ade remote dock lis upstream doc 配置 http { upstream docker { server 192.168.88.106:10001; server 192.168.88.1
基於LVS的負載均衡實現之NAT
ftp服務器 replicat 會話 集群 負載均衡技術 方式 conn 需要 執行 一 什麽是負載均衡 負載均衡,英文名稱為Load Balance,其意思就是分攤到多個操作單元上進行執行,例如Web服務器、FTP服務器、企業關鍵應用服務器和其它關鍵任務服務器等,從而共同
【轉】淺談一個網頁打開的全過程(涉及DNS、CDN、Nginx負載均衡等)
位置 filters 產生 多種方法 tps windows cnblogs 這就是 廣東 1、概要 從用戶在瀏覽器輸入域名開始,到web頁面加載完畢,這是一個說復雜不復雜,說簡單不簡單的過程,下文暫且把這個過程稱作網頁加載過程。下面我將依靠自己的經驗,總結一下整個過程
BasePath問題-nginx負載均衡配置
.... class ip地址 htm post 細致 rpo 均衡 css 在配置nginx+tomcat好後。將項目加入到webapps中。發現訪問主頁時,css與js訪問不到,導致主頁布局出錯。細致分析原因後發現css與js的地址是basePath得出的。而bas
tomcat+nginx負載均衡群集
負載均衡群集線上環境Nginx+Tomcat網站拓撲架構服務器軟件要求:主機 IP地址 主要軟件 Nginx服務器192.168.1.102 nginx-1.6.0.tar.gz Tomcat1 192.168.1.100 1.jdk-7u65-linux-x64.gz 2.apache-tomcat-
Nginx負載均衡+Keepalived高可用集群
check list proxy www alived 編譯安裝nginx efi class request 一、搭建環境及軟件版本 負載均衡:Nginx 高可用:Keepalived Linux:Centos 6.5 Nginx:nginx-1.6.2 Keepaliv
tomcat+nginx負載均衡
col rec 80端口 get tom 127.0.0.1 核數 worker div 一、 工具 nginx-1.8.0 apache-tomcat-6.0.33 二、 目標 實現高性能負載均衡的Tomcat集群: 三、 步驟
nginx負載均衡簡單配置
.org star gin def lis down pes timeout install nginx負載均衡簡單配置準備三臺虛擬機來做這個實驗:172.16.160.99 web服務器172.16.160.103 web服務器172.16.160