準備打包好專案開發web專案,通過ftp上傳到指定的linux/unix伺服器
案例專案:mysite/
django生產環境伺服器,常規情況下使用linux/unix平台作為伺服器平台,需要準備
如下執行環境
環境:python2 x/python3.x
軟體:mysql-server、mysql-client
模組:pymysql、pillow、django、uwsgi
(1)生產環境開啟mysql-client命令列,執行專案sql指令碼語言,初始化資料庫
(2)在專案根目錄中,新增uwsgi.ini配置檔案,新增如下內容:
[uwsgi](3) 專案執行#指定伺服器部署ip位址和埠
#配置專案在當前伺服器中的絕對路徑
chdir=/home/worker/django_pro/mysite
#相對路徑指定當前專案中wsgi.py
wsgi-file=mysite/wsgi.py
#設定啟動的程序數量
processes=4
#設定每個程序啟動的執行緒數量
threads=2
#設定主程序
master=true
#指定儲存主程序編號的檔案
padfile=uwsgi.pid
#指定守護程序的日誌儲存
daemonize=uwsgi.log
啟動專案,當前路徑中,直接執行命令啟動專案
uwsgi --ini停止專案,通過包含主程序編號的檔案設定停止專案
uwsgi --stop uwsgi.pid啟動專案
uwsgi --reload uwsgi.pid通過uwsgi伺服器部署django專案,通過nginx進行反向**
(1)專案根目錄建立uwsgi.ini配置檔案
[uwsgi]#配置和nginx反向**之間的連線位址
socket=localhost:8000
#配置專案根目錄
chdir=/home/worker/django_pro/mysite
#相對路徑指定當前專案中wsgi.py
wsgi-file=mysite/wsgi.py
#設定啟動的程序數量
processes=4
#設定每個程序啟動的執行緒數量
threads=2
#設定主程序
master=true
#指定儲存主程序編號的檔案
pidfile=uwsgi.pid
#指定守護程序的日誌儲存
daemonzie=uwsgi.log
(2) 程式設計nginx.conf配置檔案,設定反向**
nginx和uwsgi進行配合使用時,nginx主要有兩個作用,使用nginx作為靜態檔案伺服器和反向**伺服器
static_root=/home/worker/django_pro/myweb/static_file/進入django專案根目錄執行命令手機靜態檔案
#靜態檔案路徑配置
location /static}··
}(3) 啟動專案進行測試
>>>uwsgi --in uwsgi.ini
>>>nginx
>>> ps -ef|grep wsgi
··>>>ps -ef|grep nginx
使用uwsgi配置django專案的多程序部署,使用nginx進行靜態檔案的部署和負載均衡的配置
(1) 在多型主機上部署多個相同的django專案【同一臺主機上部署多個專案進行模擬】設定兩個或者多個django專案啟動配置資訊如下
mysite/uwsgi.ini
[uwsgi]
#配置專案訪問位址
#配置專案根路徑
chdir=/home/worker/django_pro/mysite
#相對路徑指定當前專案中wsgi.py
#設定啟動的程序數量
processes=4
#設定每個程序啟動的執行緒數量
thread=2
#設定主程序
master=true
#指定儲存主程序編號檔案
pidfile=uwsgi.pid
#指定守護程序的日誌儲存
demonize=uwsgi.log
(2)配置nginx靜態伺服器對映和負載均衡
# 使用預設的輪詢分發配置多個分布的服務主機
upstream myweb
server
# 配置靜態檔案伺服器
location /static
.. ..
(3)測試訪問專案
test
參考django1.1部分
直接通過配置檔案命令或者命令列指定埠執行程式,就可以使用tornado自帶的web伺服器啟動web專案並提供正常的web服務了
但是這樣的操作方式並不是可取的,命令列需要處理讓啟動的程式後台執行,並且如果部署多程序專案的話,多個程序直接沒有進行統一管理的操作,很不方便後期的維護操作
直接執行【阻塞方式】
>>>python demo.py --port=8000
後台執行【非阻塞方式】
>>>python demo.py --port=8000
針對tornado多程序部署方式,第三方提供了各種程序管理模組用於進行tornado專案多個程序的維護管理,專案中常用的如supervisor、circus等等
(1)ubuntu中安裝supervisor
$sudo apt-get install supervisor備註:可以使用pip install supervisor進行安裝
安裝完成後,生成supervisor配置檔案
$cd /etc/supervisor修改配置檔案/etc/supervisor/supervisor.conf$echo_supervisor_conf > supervisord.conf
··
[include]
files./conf.d/*.conf
(2)新增tornado管理配置檔案/etc/supervisor/conf.d/tornadoes.conf
[group:td]
programs=tornado-8000, tornado-8001
[program:tornado-8000]
command=/home/worker/tornado_web/tornado_lib/bin/python /home/worker/tornado_web/web1/demo01.py --port=8000
directory=/home/worker/tornado_web/web1
user=www-data
autorestart=true
redirect_stderr=true
stdout_logfile=/home/worker/tornado_web/web1/log/tornado.log
loglevel=debug
[program:tornado-8001]
command=/home/worker/tornado_web/tornado_lib/bin/python /home/worker/tornado_web/web1/demo01.py --port=8001
directory=/home/worker/tornado_web/web1
user=www-data
autorestart=true
redirect_stderr=true
stdout_logfile=/home/worker/tornado_web/web1/log/tornado.log
loglevel=info
(3)程序管理
啟動程序管理器
$ supervisor -c supervisord.conf程序管理器包含程序狀態管理
supervisorctl status #檢視管理的所有程序的狀態
supervisorctl update #重新啟動配置檔案修改的程式
supervisorctl stop td:* #停止所有程序【可以指定程序】
supervisorctl start td:* #啟動所以程序【可以指定程序】
supervisorctl restart td:* #重啟所有程序程序【可以指定程序】
模仿django和tornado的專案部署方式
參考
Nginx部署檔案服務之遠端訪問檔案
make make install 配置檔案伺服器 server 新增解決跨域問題 add header access control allow origin add header access control allow methods get,post add header access co...
遠端部署ElasticSearch
這步參考部落格很詳細 本地安裝ssh客戶端服務 sudo apt install openssh clientssh p 埠號 使用者名稱 ip位址 ssh p 8001 root 117.121.38.110整個過程參考我之前寫的在本地安裝es的教程 但與之前不同,部署伺服器,需要先把本地安裝包使...
遠端部署fastdfs
查詢映象 docker search fastdfs 拉取映象 delron fastdfs含有nginx docker pull delron fastdfs 執行tracker docker run d network host name tracker v var fdfs tracker v...