Centos7系統,Nginx+uwsgi+flask框架部署web應用python
參考 https://www.jianshu.com/p/da28ec28ef4b
參考 https://blog.csdn.net/woshizhiwu/article/details/78237921mysql
1.安裝git
yum install gitlinux
安裝最新版本
yum install mysql-community-servernginx
啓動 MySQL 服務
#CentOS 7
$sudo service mysqld start
$sudo systemctl start mysqld
$sudo systemctl status mysqldgit
修改密碼
Mysql安裝時會生成一個默認密碼,使用 grep "temporary password" /var/log/mysqld.log命令,返回結果最後引號後面的字符串就是root的默認密碼
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';github
安裝 Python 3
sudo mkdir /usr/local/python3 # 建立安裝目錄
$ wget --no-check-certificate https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz # 下載 Python 源文件 web
$ tar -xzvf Python-3.6.2.tgz # 解壓縮包
$ cd Python-3.6.2 # 進入解壓目錄
sudo ./configure --prefix=/usr/local/python3 # 指定建立的目錄
sudo make
sudo make install # 編譯安裝sql
配置兩個版本共存
建立 python3 的軟連接:
$ sudo ln -s /usr/local/python3/bin/python3 /usr/bin/python3flask
安裝 Python 3 的 pipcentos
$ wget --no-check-certificate https://github.com/pypa/pip/archive/9.0.1.tar.gz
$ tar -zvxf 9.0.1.tar.gz # 解壓文件
$ cd pip-9.0.1
$ python3 setup.py install # 使用 Python 3 安裝
建立連接:
$ sudo ln -s /usr/local/python3/bin/pip /usr/bin/pip3
建立虛擬環境
cd /home/www/blog
mkdir venv
python3 -m venv venv
激活虛擬環境:
source venv/bin/activate
而後根據requirements.txt文件安裝依賴包:
pip3 install -r requirements.txt
開始正式部署:
簡單介紹
在linux上,nginx+uwsgi是最多見的部署方式之一。整個部署過程大致分爲三部分。
安裝uwsgi。
pip install uwsgi
uwsgi官方文檔地址:http://uwsgi-docs.readthedocs.io/en/latest/
4.nginx,uwsgi配置
打開nginx配置文件nginx.conf,這個文件默認位置爲安裝目錄下的conf目錄中。
只須要修改server塊下的location塊內容就能夠,
若須要其餘的配置,日誌,多應用等能夠參考nginx官方文檔,或者相應書籍。
location塊配置以下。
location / { include uwsgi_params; uwsgi_pass 127.0.0.1:3031; }
接下來在項目根目錄下新建uwsgi.ini文件用以啓動uwsgi。
[uwsgi]
master = true
socket = 127.0.0.1:3031
virtualenv = ./venv
wsgi-file = manage.py
callable = app
processes = 4
threads = 2
stats = 127.0.0.1:919
socket選項必定要與nginx,conf中相同。
若是用了虛擬環境,將virtualenv選項設置你的虛擬環境位置。沒用虛擬環境則不加次條。
wsgi-file,運行項目打開的第一個文件。
callable ,manage.py中你建立的app的名字。
進程和線程根據硬件性能設置相應數值。
把工做目錄定位到nginx安裝目錄下,運行nginx:
./sbin/nginx
把工做目錄定位到項目根目錄下,
uwsgi uwsgi.ini
若是沒有報錯,那麼在瀏覽器中輸入你的服務器ip或者解析到該ip的域名便可訪問你的應用了。
後臺啓動 uwsgi : uwsgi deploy_new/uwsgi.ini -d uwsgi.log
安裝 killall: centos7精簡安裝後,使用中發現沒有killall命令。 安裝這個包便可: yum install psmisc
關掉 uwsgi # killall -9 uwsgi
5.可能遇到的問題配置完成後,鏈接失敗。 可能服務器沒有開放80號端口,這個是默認端口。打開方法以下 firewall-cmd --zone=public --add-port=80/tcp --permanent 命令做用: –zone :做用域 –add-port : 添加的端口,格式爲 端口/通信協議 –permanent : 永久生效,重啓後不失效。 (21,22端口打開方法相同)nginx配置修改後必定要重啓服務。若是須要開機啓動,能夠使用Supervisor。