日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

项目上线最后工作——布署环境

發布時間:2024/7/5 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 项目上线最后工作——布署环境 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 當項目開發完成后,需要將項目代碼放到服務器上,這個服務器擁有固定的IP,再通過域名綁定,就可以供其它人瀏覽,對于python web開發,可以使用wsgi、apache服務器,此處以wsgi為例進行布署
  • 服務器首先是物理上的一臺性能高、線路全、運行穩定的機器,分為私有服務器、公有服務器
  • 私有服務器:公司自己購買、自己維護,只布署自己的應用,可供公司內部或外網訪問,成本高,需要專業人員維護,適合大公司使用
  • 公有服務器:集成好運營環境,銷售空間或主機,供其布署自己的應用,適合初創公司使用,成本低
  • 常用的公有服務器,如阿里云、青云等,可按流量收費或按時間收費
  • 服務器還需要安裝服務器軟件,此處需要uWSGI、Nginx
  • 服務器架構如下圖

示例

  • 布署前需要關閉調試、允許任何機器訪問,打開test6/settings.py文件
DEBUG = False ALLOWED_HOSTS=['*',]
  • 打開templates/booktest/index.html文件,修改如下
<html> <head><title>第三方包</title> </head> <body> <h1>第三方包</h1> <hr> <h1>布署</h1> <img src="/static/img/sg.png"/> </body> </html>
  • 將圖片sg.png拷貝到static/img/目錄下

  • 運行服務器,在瀏覽器中輸入如下網址
http://127.0.0.1:8000/
  • 瀏覽效果如下圖,圖片是看不到的


搭建服務器虛擬環境

  • 在本機進入虛擬環境,執行命令導出當前需要的所有包
pip freeze > plist.txt
  • 通過ftp軟件將項目代碼和plist.txt文件上傳到服務器
  • 創建虛擬環境,在虛擬環境上安裝包
mkvirtualenv 虛擬環境名稱 pip install -r plist.txt

WSGI

  • 在生產環境中使用WSGI作為python web的服務器
  • WSGI:全拼為Python Web Server Gateway Interface,Python Web服務器網關接口,是Python應用程序或框架和Web服務器之間的一種接口,被廣泛接受。WSGI沒有官方的實現, 因為WSGI更像一個協議,只要遵照這些協議,WSGI應用(Application)都可以在任何服務器(Server)上運行
  • 項目默認會生成一個wsgi.py文件,確定了settings模塊、application對象
    • application對象:在Python模塊中使用application對象與應用服務器交互
    • settings模塊:用于進行項目配置

uWSGI

  • uWSGI實現了WSGI的所有接口,是一個快速、自我修復、開發人員和系統管理員友好的服務器
  • uWSGI代碼完全用C編寫,效率高、性能穩定
  • 安裝uWSGI
pip install uwsgi
  • 配置uWSGI,在項目目錄下創建uwsgi.ini文件,配置如下
[uwsgi] #使用nginx連接時使用 #socket=127.0.0.1:8080 #直接做web服務器使用 http=127.0.0.1:8080 #項目目錄 chdir=/home/python/Desktop/pytest/test6 #項目中wsgi.py文件的目錄,相對于項目目錄 wsgi-file=test6/wsgi.py processes=4 threads=2 master=True pidfile=uwsgi.pid daemonize=uwsgi.log
  • 啟動
uwsgi --ini uwsgi.ini
  • 查看
ps ajx|grep uwsgi
  • 效果如下圖

  • 停止
uwsgi --stop uwsgi.pid
  • 在瀏覽器中輸入如下網址
http://127.0.0.1:8080/
  • 瀏覽效果如下圖,圖片是看不到的

  • 測試沒問題,將配置中啟用socket,禁用http

  • 停止uwsgi服務,然后再啟動uwsgi

Nginx

  • 使用nginx的作用主要包括負載均衡、反向代理
  • 點擊查看官方網站
  • 下載nginx后放到桌面上,解壓縮
tar zxvf nginx-1.6.3.tar.gz
  • 進入nginx-1.6.3目錄,依次執行以下命令進行安裝
./configure make sudo make install
  • 默認安裝到/usr/local/nginx/目錄,進入此目錄
cd /usr/local/nginx/
  • 啟動
sudo sbin/nginx
  • 查看進程
ps ajx|grep nginx

  • 停止
sudo sbin/nginx -s stop
  • 打開瀏覽器,輸入如下網址
http://127.0.0.1/
  • 瀏覽效果如下圖

指向uwsgi項目

  • 打開conf/nginx.conf文件
sudo gedit conf/nginx.conf
  • 在server節點下添加新的location項,指向uwsgi的ip與端口
location / {#將所有的參數轉到uwsgi下include uwsgi_params;#uwsgi的ip與端口uwsgi_pass 127.0.0.1:8080;}
  • 代碼效果如下圖

  • 關閉nginx后再開啟
  • 打開瀏覽器,刷新后如下圖

靜態文件

  • 所有的靜態文件都會由nginx處理,不會將請求轉到uwsgi
  • 打開conf/nginx.conf文件
sudo gedit conf/nginx.conf
  • 在server節點下添加新的location項,用于處理靜態文件
location /static {alias /var/www/test6/static/;}
  • 在服務器上創建如下目錄
sudo mkdir -vp /var/www/test6/static/
  • 修改目錄權限
sudo chmod 777 /var/www/test6/static/
  • 最終目錄結構如下圖:

  • 修改test6/settings.py文件
STATIC_ROOT='/var/www/test6/static/' STATIC_URL='/static/'
  • 收集所有靜態文件到static_root指定目錄
python manage.py collectstatic
  • 按提示輸入yes,收集文件

  • 停止后再啟動nginx服務
  • 在瀏覽器中刷新,瀏覽效果如下圖

  • 布署完成


總結

以上是生活随笔為你收集整理的项目上线最后工作——布署环境的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。