天天看點

python Web開發01

Get新知識:

nginx + gunicorn + flask 部署web項目

nginx 的安裝和配置

一、安裝編譯工具及庫檔案

yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel
           

二、安裝 PCRE(讓 Nginx 支援 Rewrite 功能)

#下載下傳最新版本的,注意不要用pcre2
wget https://jaist.dl.sourceforge.net/project/pcre/pcre/8.42/pcre-8.42.tar.gz
tar -xvf pcre-8.42.tar.gz
cd pcre-8.42 
#安裝編譯
./configure
make && make install
#檢視pcre版本
pcre-config --version
           

三、安裝nginx

#下載下傳
wget https://nginx.org/download/nginx-1.15.9.tar.gz
tar -xvf nginx-1.15.9.tar.gz
cd nginx-1.15.9
#編譯安裝
./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.42 
make && make install
#檢視版本
/usr/local/webserver/nginx/sbin/nginx -v
           

三、nginx配置

#建立 Nginx 運作使用的使用者 www
/usr/sbin/groupadd www 
/usr/sbin/useradd -g www www
# 也可以不建立使用者,而是使用root使用者即可
#設定包含多個配置檔案,在nginx.conf底部添加
include vhost/*.conf;
#啟動
/usr/local/webserver/nginx/sbin/nginx
/usr/local/webserver/nginx/sbin/nginx -s reload            # 重新載入配置檔案
/usr/local/webserver/nginx/sbin/nginx -s reopen            # 重新開機 Nginx
/usr/local/webserver/nginx/sbin/nginx -s stop              # 停止 Nginx
# /usr/local/webserver/nginx/conf/vhost/demo.tilesrow.com.conf 
server
    {
    		# nginx 預設監聽80 端口号,可以自定義
        listen 80;
        #listen [::]:80;
        # server_name 就是本機位址
        server_name  xx.com;
        # 預設通路的靜态檔案資源
        index index.html index.htm index.php default.html default.htm default.php;
        root  /data/project/demo1;
        access_log  /usr/local/webserver/nginx/logs/xx.com.log;
    }
           

内網映射端口配置

server
    {
        listen 80;
        #listen [::]:80;
        server_name  demo.xx.com;
        location / {
            proxy_set_header  X-Real-IP  $remote_addr;
            proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_redirect off;
            proxy_pass http://127.0.0.1:8001;
        }
        access_log  /usr/local/webserver/nginx/logs/demo.xx.com.log;
    }
           

結果配置如下:

server{
    listen 8000;
    server_name  192.168.123.201;
    location {
			include uwsgi_params;
   		#  uwsgi_pass  127.0.0.1:9000;
   		proxy_pass http://127.0.0.1:9000/;
   }
}

           

gunicorn 的安裝配置

注意下python 項目的虛拟環境下。

使用pip install gunicorn 安裝 gunicorn

安裝好之後就可通過指令來啟停服務。

項目的啟動

使用下面指令進行項目的啟動

gunicorn -w 5 -b 127.0.0.1:9000 wsgi:application

其中 127.0.0.1:9000 是flask應用程式的啟動端口和IP,wsgi 是項目根目錄下的一個啟動項目檔案名為wsgi.py application 是 flask執行個體對象名。

或者使用自定義的gunicorn.py 配置檔案

gunicorn -c app/gunicorn_config.py wsgi:application

其中.py 是自定義的配置檔案

如下:

import multiprocessing

bind = '0.0.0.0:9000'      #綁定ip和端口号
backlog = 512                #監聽隊列
chdir = '/usr/local/webserver/nginx/software_project'  #gunicorn要切換到的目的>工作目錄
timeout = 40      #逾時
worker_class = 'gevent' #使用gevent模式,還可以使用sync 模式,預設的是sync模式

workers = multiprocessing.cpu_count() * 2    #程序數
threads = 2 #指定每個程序開啟的線程數
# 設定最大并發量
worker_connections = 2000
# 設定程序檔案目錄
pidfile = '/var/run/gunicorn.pid'
           

centos 使用 yum 線上安裝python3

步驟:

  1. 安裝epel
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
           
  1. 安裝 epel-release 工具
yum install epel-release
           
  1. 找到庫裡面支援的 python3 版本
yum list | grep python3 | more
           
  1. 安裝python3
yum install python36
           
  1. 測試安裝是否成功
python3
           

Linux下安裝Python虛拟環境Virtualenv

需要先安裝好python3 的環境。

1、首先,使用pip指令安裝virtualenv子產品:

# pip3 install virtualenv
           

測試是否安裝成功

# virtualenv --version
           

安裝成功,則會列印安裝的virtualenv的版本号

3、建立獨立運作環境,并命名

# virtualenv --no-site-packages venv
           

venv是虛拟環境的名稱,可以根據自己的需要進行命名。

其中 直接使用指令 virtualenv 就可以建立一個獨立的Python運作環境,加上參數**–no-site-packages**,可以将已經安裝到系統Python環境中的第三方包都不制到獨立環境中,這樣我們就可以得到一個不帶任何第三方包的Python環境了。

4、建立的Python環境被放到了目前目錄下的venv目錄,有了venv這個Python環境,我們就可以開始使用這個虛拟環境了,需将其激活:

# source venv/bin/activate
           

需要注意的是source 虛拟環境下的bin目錄下的activate ,激活成功後,我們可以看到終端指令提示符前多了虛拟環境的名稱

5、如果暫時不用此虛拟環境了,退出venv環境

(venv) # deactivate
           

6、其他指令

① 檢視目前虛拟機環境目錄
# worken
           
②切換虛拟環境
# workon venv2
           
③退出虛拟環境
# deactivate
           
④删除虛拟環境
# rmvirtualenv venv
           

安裝并配置好 python 虛拟環境 virtualenv 好 之後i,就是安裝好項目所需的第三方包,就可以将項目部署到伺服器上了。

繼續閱讀