操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    相比較學習Django來說,部署應該是在整個環節中比較難的一項,特別是一些自學者,對liunx系統的命令行操作不熟悉,甚至是從來沒有接觸過服務器,這一塊我相信勸退了很多人!當初我自己學習的時候也是如此!

    但我仍然覺得自學是一件非常酷的事,雖說可能會走些彎路,但這些彎路何嘗不是一種歷練和積累呢?你看人生的每一步都是這樣,越想走捷徑的人最后都繞了遠路,馬云在成功之前也曾經歷過無數失敗,所以直面困難。

    自學習編程,請做到以下這三點:

    一、學會總結歸納問題,并養成做筆記的習慣

    二、出現問題,學會利用搜索引擎去搜索問題

    三、不懂的可以先照貓畫虎,將你的需求實現,然后再去探尋一些概念性以及你不懂的知識點

    好了,開始我們今天的正題,部署我們已經用django開發好的博客項目!

    部署之前需要做的幾件事

    注意:以下幾件事都必須在激活虛擬環境下完成

    1. 運行以下命令生成項目所需的依賴列表,會在項目根目錄生成一個requirements.txt的文件
    pip3 freeze > requirements.txt

    讀取requirements.txt文件,并安裝項目依賴命令!

     pip3 install -r requirements.txt 

    2. 搜集項目的靜態文件

    在項目的配置文件settings.py文件中添加添加靜態文件路徑

     STATIC_ROOT = '/var/www/django-blog/static/'

    這將會把所有的靜態文件拷貝至STATIC_ROOT配置的路徑!

    解決服務器的問題

    學習階段我們需要買一個云服務器嗎?

    我的答案是如果條件允許,建議你買一個初級的!費用也不是很高,一般做活動的話阿里云等這些平臺都會很便宜!但購買服務器不是必須的,我們可以在本地電腦上安裝虛擬機來充當服務器學習,一般安裝系統為ubuntu或centos,虛擬機使用 VMware就可以!

    虛擬機VMware哪里有?以及如何在虛擬機安裝liu,nx系統 ?請參照自學編程的第二點,大家自行去解決這兩個問題!

    如何在本地鏈接到服務器?

    一般我們開發用的系統都是windows 10,至少我是如此,土豪Mac請繞過,那首先必須安裝openssh!

    win10 openSSH安裝教程:https://docs.microsoft.com/zh-cn/windows-server/administration/openssh/openssh_install_firstuse

    使用vscode編輯器鏈接遠程服務器

    一、安裝擴展Remote Development

    vscode本身就支持遠程開發,請安裝下邊這個擴展!

    二、添加遠程服務器連接

    三、保存服務器配置文件

    安裝Nginx

    sudo apt-get install nginx

    檢查nginx是否安裝成功:*nginx -v 查看nginx的版本,如果正確顯示格式如這樣 nginx version: nginx/1.18.0 (Ubuntu),那么證明安裝成功!

    nginx常用命令:

    1. 啟動nginx: service nginx start
    2. 停止nginx:service nginx stop
    3. 重啟nginx:service nginx restart
    4. 重載配置文件:service nginx reload
    5. 查看nginx狀態:service nginx status

    安裝git并克隆項目

    ubuntu安裝git,請參考這篇文章:http://www.lotdoc.cn/blog/post/28/

    一、進入Nginx用來默認放置網站的文件夾

    cd /var/www

    二、克隆項目到該文件夾

    git clone https://gitee.com/qbiancheng/django-blog.git

    三、創建虛擬環境

    python3 -m venv venv

    四、激活虛擬環境

    linux: . venv/bin/activate
    windows: venv\Scripts\activate

    五、安裝依賴

    pip3 install -r requirements.txt

    安裝uwsgi

    linux-ubuntu安裝uwsgi

    對于 Python3.x 版本

    sudo apt-get install python3-dev
    sudo apt-get install python3-pip 
    sudo pip3 install uwsgi

    創建uwsgi配置文件

    在項目目錄下創建一個deploy的文件,創建一個uwsgi.ini的文件

    cd /var/www/django-blog
    makdir deploy
    cd deploy
    touch uwsgi.ini

    使用vim打開uwsgi.ini文件vim uwsgi.ini,復制以下代碼并加以修改

    # 配置域應該是uwsgi,記住這個不能丟,否則會報錯
    [uwsgi]
    # uwsgi監聽的socket,可以為socket文件或ip地址+端口號,用nginx的時候就配socket , 直接運行的時候配 http, http-socket = 127.0.0.1:8080
    socket    = 127.0.0.1:8001
    
    #指定項目的目錄,在app加載前切換到當前目錄
    chdir           = /www/wwwroot/django-blog
    
    # Django的wsgi文件,用來加載blog2/wsgi.py這個模塊
    module          =  mysite.wsgi
    # Python虛擬環境的路徑
    home            = /www/wwwroot/django-blog/venv
    # master 啟動主進程。
    master   = true
    # 最大數量的工作進程數
    processes   = 10
    # 指定工作進程中的線程數
    threads = 2
    
    # 設置socket的權限
    chmod-socket    = 664
    # 退出的時候是否清理環境,自動移除unix Socket 和 Pid 文件
    vacuum          = true
    #日志文件路徑
    daemonize = /www/wwwroot/django-blog/deploy/uwsgi.log

    創建項目nginx的配置文件

    進入:cd /etc/nginx/sites-enabled

    創建:touch blog

    用vim編輯打開剛才創建的blog文件,將下邊的內容填寫進去,具體參考注釋說明:

    # 配置文件內容:
    # 轉發給哪個服務器,可以通過upstream配置項讓nginx實現負載均衡
    upstream django {    
        server   127.0.0.1:8001;  # 這里的端口號必須和uwsgi里的保持一致
        server   127.0.1.1:8001;
    }
    
    # 設定虛擬主機配置,一個http中可以有多個server。
    server {
        # 啟動的nginx進程監聽請求的端口
        listen      80;
        #定義使用域名訪問
        server_name  192.168.11.106;
        charset     utf-8;
    
        # max upload size  
        client_max_body_size 75M;    # adjust to taste
    
        # location 配置請求靜態文件多媒體文件。
        location /media  {
            alias  /www/wwwroot/django-blog/media/;  
        }
        # 靜態文件訪問的url
        location /static {
            # 指定靜態文件存放的目錄
            alias /www/wwwroot/django-blog/static/;
        }
    
    #  將所有非媒體請求轉到Django服務器上
        location / {
            # 包含uwsgi的請求參數,路徑為qmblog_uwsgi_params絕對路徑
            include  /www/wwwroot/django-blog/deploy/params; 
            # 轉交請求給uwsgi
            # uwsgi_pass  127.0.0.1:8000; 
            uwsgi_pass  django;  
            #這個django對應開頭出的,對于動態請求,轉發到本機的端口,也就是uwsgi監聽的端口,uwsgi運行的主機和ip,后面我們會在本機的該端口上運行uwsgi進程
            # 下面兩個配置意思是如果比如通過http://www.xxx.com直接訪問的是static下的index.html或者index.htm頁面,一般用于將首頁靜態化
            #root   /root/src/www/CainiaoBlog/static/;
            #index index.html index.htm; 
        }
       # 精確匹配不同于上面/,這里http://www.xxx.com會匹配這個,根據這個配置將請求轉發給另外nginx服務器,
       # 讓另外服務器提供靜態首頁。同上面的訪問index.html在另外同一臺服務器上同一配置文件中結合。
       # location = / {
        #    proxy_pass  http://ip:port;
      #  }
    }

    最后,重啟nginx,具體請參考nginx常用命令!

    啟動uwsgi服務

    備注:請務必在激活虛擬環境下運行

    cd /var/www/django-blog
    uwsgi --ini deploy/uwsgi.ini

    出現[uWSGI] getting INI configuration from deploy/uwsgi.ini類似這行的命令說明啟動成功,直接去瀏覽器訪問即可!

    Nginx

    Nginx (engine x) 是一個高性能的HTTP和反向代理web服務器,同時也提供了IMAP/POP3/SMTP服務,通用TCP/UDP代理服務器。最初由Igor Sysoev編寫。長期以來,它已在許多負載較重的俄羅斯站點上運行,包括Yandex,Mail.Ru,VK和Rambler。 根據Netcraft的數據,nginx在2020年2月為最繁忙的站點提供了服務或代理了25.68%。中國大陸使用nginx網站用戶有:百度、京東、新浪、網易、騰訊、淘寶等。

    截至2019年12月,差不多世界上每3個網站中就有1個使用Nginx。

    特性

    • 高并發連接,官方測試Nginx能夠支撐5萬并發連接,在實際的生產環境中可支撐2~4萬的并發連接數。這個得益于Nginx使用了epoll和kqueue網絡模型。
    • 內存消耗少,Nginx+PHP(FastCGI)服務器在3萬并發連接下,開啟的10個Nginx進程消耗150MB內存(150×10=150MB),開啟的64個php-cgi進程消耗1280MB內存(20MB×64=1280MB),加上系統自身消耗的內存,總共消耗不到2GB的內存。如果服務器內存較小,完全可以只開啟25個php-cgi進程,這樣php-cgi消耗總內存數才500MB。用Webbench做壓力測試,在3萬并發連接下,訪問Nginx+PHP(FastCGI)服務器的PHP程序,運行速度依然飛快。
    • 成本低廉,購買F5,BIG-IP,NetScaler等硬件負載均衡交換機需要十多萬甚至幾十萬人民幣。而Nginx為開源軟件,采用的是2-clauseBSD-like協議,可以免費使用,并且可以用于商業用途。
    • 配置文件簡單,網絡跟程序一樣通俗易懂,即使非專業系統管理員也能看懂。
    • 內置的健康檢查功能,如果Nginx Proxy后端的某臺Web服務器宕機了,不會影響前端訪問。
    • 節省寬帶,支持GZIP壓縮,可以添加瀏覽器本地緩存的Header頭。
    • 穩定性高,用于反向代理,宕機的概率微乎其微。
    • 支持熱部署,Nginx支持熱部署,它的啟動特別容易,并且幾乎可以7天中24小時不間斷地運行,即使運行數個月也不需要要重新啟動。你還能在不間斷服務的情況下,對軟件進行升級。

    Nginx安裝

    Linux版本:Cent OS764位

    Nginx版本: nginx-1.15.9

    在安裝nginx前首先要確認系統中安裝了gcc、pcre-devel、zlib-devel、openssl-devel

    1、rpm包安裝的,可以用 rpm -qa 看到,如果要查找某軟件包是否安裝,用 rpm -qa | grep "軟件或者包的名字"

    2、以deb包安裝的,可以用 dpkg -l 看到。如果是查找指定軟件包,用 dpkg -l | grep "軟件或者包的名字"

    3、yum方法安裝的,可以用 yum list installed 查找,如果是查找指定包,用 yum list installed | grep "軟件名或者包名"

    1.依賴環境安裝

    yum -y install gcc pcre-devel zlib-devel openssl openssl-devel

    2.下載Nginx

    wget http://nginx.org/download/nginx-1.15.9.tar.gz
    

    3.解壓

    tar -zxvf nginx-1.15.9.tar.gz

    4./usr/local目錄下創建一個nginx目錄,用來把已經下載好的nginx安裝編譯到此目錄中

    cd nginx-1.15.9
    ./configure --prefix=/usr/local/nginx
    make && make install

    /usr/local/中生成nginx目錄,nginx安裝完成。

    目錄結構

    |-- conf             #這是Nginx所有配置文件的目錄,極其重要
        |-- fastcgi.conf                 #fastcgi相關參數的配置文件
        |-- fastcgi.conf.default     #fastcgi.conf的原始備份
        |-- fastcgi_params           #fastcgi的參數文件
        |-- fastcgi_params.default
        |-- koi-utf
        |-- koi-win
        |-- mime.types               #媒體類型
        |-- mime.types.default
        |-- nginx.conf              #這是Nginx默認的主配置文件
        |-- nginx.conf.default
        |-- scgi_params           #scgi相關參數文件,一般用不到
        |-- scgi_params.default
        |-- uwsgi_params            #uwsgi相關參數文件,一般用不到
        |-- uwsgi_params.default
        |-- win-utf
       fastcgi_temp              #fastcgi臨時數據目錄
    |-- html              #這是編譯安裝時Nginx的默認站點目錄,類似
                       Apache的默認站點htdocs目錄
    23 |   |--50x.html     #     錯誤頁面優雅替代顯示文件,例如:出現502錯誤時會調用此頁面
    24          #     error_page   500502503504  /50x.html;
    25 |   `-- index.html   #     默認的首頁文件,首頁文件名字是在nginx.conf中事先定義好的。
    26 |-- logs          #這是Nginx默認的日志路徑,包括錯誤日志及訪問日志
    27 |   |-- access.log      #     這是Nginx的默認訪問日志文件,使用tail -f access.log,可以實時觀看網站用戶訪問情況信息
    28 |   |-- error.log      #     這是Nginx的錯誤日志文件,如果Nginx出現啟動故障等問題,一定要看看這個錯誤日志
    29 |   `-- nginx.pid      #     Nginx的pid文件,Nginx進程啟動后,會把所有進程的ID號寫到此文件
    30 |-- proxy_temp       #臨時目錄
    31 |-- sbin      #這是Nginx命令的目錄,如Nginx的啟動命令nginx
    32 |   `-- nginx      #Nginx的啟動命令nginx
    33 |-- scgi_temp      #臨時目錄
    34 `-- uwsgi_temp      #臨時目錄
    35 9 directories,21 files

    操作命令

    啟動命令

    #1
    /usr/local/nginx/sbin/nginx
    #2
    進入 cd  /usr/local/nginx/sbin/nginx  目錄后 ./nginx啟動
    #3 指定配置文件啟動
    ./nginx -c /usr/local/nginx/conf/nginx.conf

    關閉防火墻,啟動Nginx,在瀏覽器即可訪問。

    systemctl stop firewalld.service
    /usr/local/nginx/sbin/nginx

    停止命令

    #1 使用-s stop可以強制停止Nginx服務
    /usr/local/nginx/sbin/nginx -s stop 或者 ./nginx -s stop,以下采用./nginx
    #2  使用-s quit可以正常地處理完當前所有請求再停止服務
    ./nginx -s quit
    #3 采用kill方式。
    #kill -s SIGTERM 主進程號
    #主進程號可以通過以下查看
    #cat /usr/local/nginx/logs/nginx.pid
    #ps -ef | grep nginx
    kill -s SIGTERM  15893   #強制停止Nginx服務
    kill -s SIGINT     15893   #強制停止Nginx服務
    kill -s SIGQUIT   15893   #優雅”地停止服務

    重啟命令

    #重新加載Nginx配置文件,然后以優雅的方式重啟Nginx
    ./nginx -s reload 
    #平滑重啟nginx
    kill -HUP 主進程號  

    其他命令

    #檢測配置文件是否有語法錯誤,然后退出
    ./nginx -t 
    #查看幫助
    ./nginx -? 或 ./nginx -h
     #顯示版本信息并退出
    ./nginx -v
     #顯示版本和配置選項信息,然后退出
     ./nginx -V
    #檢測配置文件是否有語法錯誤,轉儲并退出
    ./nginx -T 
    #在檢測配置文件期間屏蔽非錯誤信息
    ./nginx -q 
     #設置前綴路徑(默認是:/usr/share/nginx/)
    ./nginx -p prefix

    停止命令-s參數其實是告訴Nginx程序向正在運行的Nginx服務發送信號量,Nginx程序通過nginx.pid文件中得到master進程的進程ID,再向運行中的master進程發送TERM信號來快速地關閉Nginx服務

    配置文件

    vim /usr/local/nginx/conf/nginx.conf

    nginx.conf由多個塊組成,最外面的塊是main,main包含events和http,http包含upstream和多個server,server又包含多個location。

    main(全局設置)、server(主機設置)、upstream(負載均衡服務器設置)和 location(URL匹配特定位置的設置)。

    • main塊設置的指令將影響其他所有設置;
    • server塊的指令主要用于指定主機和端口;
    • upstream指令主要用于負載均衡,設置一系列的后端服務器;
    • location塊用于匹配網頁位置。

    后面章節繼續介紹Nginx的其他特性與應用。

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有