nginxの+ uwsgi +フラスコ+ centos7プロジェクトの展開

Aは、サーバとクライアントの間(ウェブ検査)をインターワーキング確認しました

ping 192.168.184.131 

第二に、構成環境
1.ファイアウォールの状態を確認します

  systemctl  status  firewalld
  #(setenforce 0 次命令可暂时不使用)

  #暂停防火墙
  systemctl  stop  firewalld

サーバーへ2.プロジェクトファイル

mkdir ~/downloads 

#以降のパス保存ファイルをダウンロードするための

mkdir  /home/conf  /home/logs  /home/env  /home/src

:#/ homeディレクトリ下のconfログのenv SRC 4つのディレクトリの作成
#conf設定ファイル:nginx.confを、uwsgi.iniファイルは、
ファイルストレージの日を記録します:nginxのは、ファイルとuwsgi日ファイル起動と実行に失敗した
のenv仮想ストレージ環境を

SRCプロジェクトファイル、コードの格納ディレクトリ

ローカルコンピュータのプロジェクトファイルにパッケージファイルを生成するpackage.txt必要が
次のプロジェクト環境に:

ピップフリーズ> package.txt

Bの使用は、対象プロジェクトファイルとpackage.txt xftp使用して、サーバーに接続xshell
サーバーへの:
/ホーム/ SRC /

python3とPIP3をインストール3。

。Aは、最初のGCCコンパイラをインストールします。

yum -y install gcc
gcc --version 

。Bは、依存関係(python3.7.0を以下libffi-develのインストールされなくてもよい)をインストールします。

yum -y groupinstall "Development tools"
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel

ダウンロードC :.
CDのディレクトリは、インストールパッケージのpython3をダウンロードします

 wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz

(https://www.python.org/ftp/python/ソースパッケージのpython独自のニーズを選択して、ここからダウンロードページが内部に行くために、サーバに直接ダウンロードすることができ、python3.7.0です)

。D解凍のPython-3.7.0.tgz:

  tar -zxvf Python-3.7.0.tgz

F。コンフィギュレーションファイル、コンパイル、ビルドを実行してインストールするのpython3
ソースコンパイラのインストールを

cd Python-3.7.0

./configure --prefix=/usr/local/python3

#設定ファイルは位置に置きます

make && make install

#コンパイルとインストール
インストールが完了していないが、間違ったインストールが成功したことに言及され

グラム。ソフトな接続を確立します

    ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3
	ln -s /usr/local/python3/bin/pip3.7 /usr/bin/pip3

時間。ビューバージョン

   python3 --version
   pip3 --version 

4 virtualenvの取り付け
A.インストール

 yum install python-virtualenv

#仮想環境を作成したenv
#は、仮想環境を保存するディレクトリを入力します。

cd /home/env  

virtualenv  --no-site-packages  testenv 

(のpython3のインストールを指定:virtualenvの-pは/ usr / binに/のpython3 --no-のsite-packages testenv)を
CD testenv

非アクティブ化:#(閉じた環境コマンド仮想環境のアクティブ化
ここではあるが。

CD /ホーム/ ENV / testenv / binに/
非アクティブ化)
ソースビン/アクティブ
(ソース/ホーム/ ENV / testenv / binに/アクティブ)

B。必要なパッケージの環境プロジェクトをインストールします。

  pip3 install -r package.txt  

(再活性化は、インストールパッケージの環境条件の下で項目を指定しました:

pip install -r /home/src/mintorFlask/package.txt )

5アンダー活性化、仮想環境のテストフラスコサービス

python3 manage.py runserver --host 127.0.0.1 -p 5000

注デバッグ= Falseの修正正式なデプロイメント環境

6インストール構成Uwsgi

。uwsgiをインストール

/home/env/testenv/bin/python3/pip3 install uwsgi

B。uwsgiプロファイルを作成します。

cd  /home/conf
vim uwsgi.ini

次のことを書く:ノートを削除

[uwsgi]
socket= 127.0.0.1:5000  # http 协议对客户端开发的端口号,客户端通过此端口访问 flask web 服务接口
pythonpath = /home/src/my_project  # my_project应用整个目录,即python代码所在目录
wsgi-file = /home/src/my_project/manage.py # web 应用python主程序
callable = app  # 一般在主运行程序 run_app.py 里指定 app = Flask(__name__)
processes = 4
threads = 2
demonize = /home/log/uwsgi.log # 指定日志文件;如果使用 supervisors 需要注释掉,否则,supervisors 不能自动拉起 uwsgi 程序
home = /home/env/testvenv # python 虚拟环境目录

C。プロジェクトを実行

入力/ホーム/ confに

/home/env/testenv/bin/python3/uwsgi --ini uwsgi.ini

 (关闭uwsgi命令 :pkill -f uwsgi -9)

現在のディレクトリのlsに誤りがない場合は、uwsgi.logの下に作成されたログファイルを表示することができます

7インストール構成nginxの

cd /home

。A nginxのインストールパッケージ:

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

。Bエキスパッケージ:

tar -zxvf nginx-1.12.2.tar.gz

C。nginxの-1.12.2、コンパイルされたインストール構成に切り替え

/opt/nginx-1.12.2
./configure \
>回车

D。コンパイル、インストール

make && make install

#安装软连接 

ln -s  /usr/local/ngnix/sbin/nginx  /usr/bin/nginx

这里查看一下 nginx是在哪个目录下可以启动

すなわちテスト

nginx   #没有任何提示就是成功了

F。バックアップの設定ファイル

cd  /usr/local/nginx/conf   
cp nginx.conf nginx.conf.bak

グラム。構成されました

vim nginx.conf

server {
        listen       80;
        server_name  src; 
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        access_log  /home/log/flask.log;
        error_log  /home/log/flaskError.log;
        
        location / {
            include  uwsgi_params;
            uwsgi_pass 127.0.0.1:5000;  #这里要和uwsgi 端口ip一致

            uwsgi_param UWSGI_PYHOME /home/env/testenv;  //指向虚拟环境目录

 uwsgi_param UWSGI_CHDIR  /home/src;  #项目位置目录
            uwsgi_param UWSGI_SCRIPT  manage:app; #项目启动文件名
 这里是manage.py和主程序注册app 
            }    
}

nginxのは、それが正しく設定されているチェック

nginx -t -c /usr/local/nginx/conf/nginx.conf

再起動

  nginx -s reload

(閉じる:nginxの-s停止)

再実行uwsgi

/home/env/testenv/bin/python3/uwsgi --ini /home/conf/uwsgi.ini

そうでない場合、それは成功の上で実行されます!おめでとうございます!

アクセス:192.168.184.131は成功となります

ファイアウォール関連:

(https://blog.csdn.net/Honnyee/article/details/81535464)

注:サービス検出をプレイした場合、外部サービスのtelnetが通過しないアクセスすることはできません

ファイアウォール-CMD --zone =公共--add-ポート= 5005 / tcpの--permanent

(永久-permanent、この引数には、障害発生後に再起動しません)

(外部からのアクセスに非常に)外部ポートへのアクセスを追加し
、ファイアウォール-CMD = --add-ポート5000 / TCP

リロードは、リロードがポートを追加した後に有効になります

ファイアウォール-cmdを--reload

これらの後に、ポートが正常に実行されない場合は、システムを再起動しようとし、成功した開かれました

オープンポート(アクセスルールを追加し、外部からのアクセスを追加) -再起動ファイアウォール-仮想マシンの再起動
で最も重要なのは(このサービスポートの使用である)サービスリスニングポートを持っている必要があり、経由のみアクセス可能!

公開された39元の記事 ウォン称賛11 ビュー60000 +

おすすめ

転載: blog.csdn.net/weixin_41782332/article/details/104351452
おすすめ