亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

django8.5?項目部署Nginx的操作步驟

 更新時間:2022年01月21日 09:54:01   作者:BreezeChasingDrizzle  
nginx是一個開源的,支持高性能,高并發(fā)的www服務(wù)和代理服務(wù)軟件。它是一個俄羅斯人lgor sysoev開發(fā)的,作者將源代碼開源出來供全球使用,下面小編給大家?guī)砹薲jango8.5?項目部署Nginx的操作步驟,感興趣的朋友一起看看吧

1、概念:
  Nginx是輕量級的高性能Web服務(wù)器,提供了諸如HTTP代理和反向代理、負載均衡等一系列重要的特性。由C語言編寫,執(zhí)行效率高。

  1. 作用:

  負載均衡,多臺服務(wù)器輪流處理請求。
  反向代理(nginx接到請求之后,可以把這個請求轉(zhuǎn)發(fā)給后邊的若干uWSGI,再給運行著Django的機器)

  1. 原理:客戶端請求nginx,再由nginx將請求轉(zhuǎn)發(fā)給uWSGI,再給Django。

2.安裝:sudo apt install nginx,這是系統(tǒng)級的組件,所以要拿apt來裝,安裝完畢之后,可以輸入nginx -v查看。

3.配置:

1.修改nginx的配置文件: /etc/nginx/sites-enables/default , sudo vim該文件.

#在server節(jié)點下添加新的location項,指向uwsgi的ip和端口。
server {
		...
		location / {
		#禁掉try_files
		uwsgi_pass 127.0.0.1:8000; #重定向到127.0.0.1的8000端口(所有/ 開頭的請求,都用uwsgi的協(xié)議轉(zhuǎn)發(fā)給127.0.0.1:8000)
		include /etc/nginx/uwsgi_params; #將所有的參數(shù)轉(zhuǎn)到uwsgi下
		}
}

2.改完之后就重啟nginx:

sudo /etc/init.d/nginx restart.

用到的命令有:sudo /etc/init.d/nginx start|stop|restart|status或者sudo service nginx start|stop|restart|status

注意:nginx配置只要修改,就需要重啟,否則配置不生效。sudo nginx -t 可以檢查修改之后語法有沒有問題。

3.修改uWSGI配置:

  說明nginx負責(zé)接收請求,并把請求轉(zhuǎn)發(fā)給后面的uWSGI,此模式下,uWSGI需要以socket模式啟動,修改項目同名目錄下的uwsgi.ini文件。

[uwsgi]
socket=127.0.0.1:8000 #把http=127.0.0.1:8000注釋掉

  改完之后,再重啟uWSGI(cd到能看見uwsgi.ini的那個文件夾,再輸入命令。uWSgi開著的話就先停掉,sudo uwsgi --stop uwsgi.pid,停下之后一定要ps aux|grep 'uwsgi'檢查一下,是不是停止成功。再啟動sudo uwsgi --ini uwsgi.ini,啟動之后也ps aux|grep 'uwsgi'檢查是否啟動啟動成功)

  nginx監(jiān)聽的是80,uWSGI監(jiān)聽的是8000,那么測試效果時,瀏覽器中輸入的地址端口號應(yīng)該是80,因為默認的就是80,所以可以直接訪問127.0.0.1開頭的地址,例如127.0.0.1/test_upload或者127.0.0.1:80/test_upload.

4.常見問題:(如果涉及到權(quán)限較高的很多操作,可以先sudo su進入超級用戶,后邊就能正常使用命令了)

1.排查錯誤時可以看日志:

1.nginx日志位置:
異常信息 /var/log/nginx/error.log ;
正常信息 /var/log/nginx/access.log

2.uwsgi日志文件:在項目同名目錄下,uwsgi.log

2.訪問127.0.0.1:80 地址,出現(xiàn)502響應(yīng):
  502響應(yīng)表示nginx反向代理配置成功,但是對應(yīng)的uWSGI未啟動,解決方法就是cd到uwsgi.ini在的那個文件夾,uwsgi --ini uwsgi.ini 啟動

3.訪問127.0.0.1:80/url 出現(xiàn)404響應(yīng):有兩種情況:

1.如果是一個很“django”的黃色報錯頁,估計就是寫的路由錯了,當(dāng)前的這個路由沒在django中配置。

2.也可能是nginx配置錯誤,沒有禁掉try_files。

5.nginx靜態(tài)文件配置:

  1. 創(chuàng)建新路徑:主要存在Django的所有靜態(tài)文件,如:/home/tarena/項目名_static/
  2. 在Django的settings.py中添加新配置:STATIC_ROOT='/home/tarena/項目名_static/static ; STATIC_ROOT是正式上線之后,靜態(tài)文件的存儲目錄 ; 防止路徑拼錯,可以使用pwd命令看一下,直接復(fù)制。
  3. 進入項目目錄后,執(zhí)行python manage.py collectstatic(只要有靜態(tài)文件的添加,就要執(zhí)行這條命令), 執(zhí)行該命令后,Django將項目中所有靜態(tài)文件復(fù)制到STATIC_ROOT中,包括Django內(nèi)建的靜態(tài)文件。
  4. 靜態(tài)文件收集好之后,得告訴nginx什么樣的請求是靜態(tài)資源請求,以及這個請求來了之后,nginx該去怎么處理:

  在nginx配置中添加新的配置:修改 /etc/nginx/sites-enabled/default,(sudo vim,否則權(quán)限不夠。)新添加location /static 路由配置,重定向到指定的 第一步創(chuàng)建的路徑即可。

server {
		...
		location /static {
		#root 第一步創(chuàng)建的文件夾的絕對路徑,如:
		root /home/tarena/項目名_static;
		}
}

添加location沒有順序要求.

添加完之后記得保存退出,Esc->:wq->回車 ,然后重啟nginx,使用命令sudo /etc/init.d/nginx restart

6.404/500頁面:
  在模板文件中添加404.html模板,當(dāng)視圖觸發(fā)Http404異常時將會被顯示。404.html僅在發(fā)布版中(即settings.py中的DEBUG=False時)才起作用。
  當(dāng)響應(yīng)處理函數(shù)觸發(fā)Http404異常時就會跳轉(zhuǎn)到404界面。

7.郵箱告警:

1.當(dāng)正式服務(wù)器上代碼運行有報錯時,可以將錯誤追溯信息發(fā)送至指定的郵箱:
在settings.py中 —— 在基礎(chǔ)郵箱授權(quán)后,添加如下配置:

# 關(guān)閉調(diào)試模式
DEBUG = False
# 錯誤報告接收方
ADMINS = [('xxx', 'xxxxxxx@example.com'), ('yyy', 'yyyyyyy@example.com')]
# 發(fā)送錯誤報告方,默認為root@localhost賬戶,多數(shù)郵件服務(wù)器會拒絕,所以改成email配置中的郵箱,也就是授權(quán)的那個郵箱
SERVER_EMAIL = 'email配置中的郵箱'

2.django可以把報錯郵件中的敏感信息用*過濾掉:

1.過濾局部變量:使用sensitive_variables()裝飾器(多個裝飾器時得放在最上邊)

from django.views.decorators.debug import sensitive_variables
@sensitive_variables('user', 'pw', 'cc')  # 參數(shù)就是想過濾掉的數(shù)據(jù)的變量名
def process_info(user):
    pw = user.pass_word
    cc = user.credit_card_number
    name = user.name
    ...

2.過濾POST數(shù)據(jù):

from django.views.decorators.debug import sensitive_post_parameters
@sensitive_post_parameters('password', 'username')
def index(request):
    s = request.POST['username'] + request.POST['abcd']
    # 'abcd' 并不存在,此時會引發(fā)error,POST中的username和password的值就會被替換為 ****

到此這篇關(guān)于django8.5 項目部署——Nginx的文章就介紹到這了,更多相關(guān)django項目部署Nginx內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 通過nginx實現(xiàn)方向代理過程圖解

    通過nginx實現(xiàn)方向代理過程圖解

    這篇文章主要介紹了通過nginx實現(xiàn)方向代理過程圖解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-02-02
  • CentOS6使用nginx搭建web網(wǎng)站服務(wù)的方法

    CentOS6使用nginx搭建web網(wǎng)站服務(wù)的方法

    這篇文章主要介紹了CentOS6使用nginx搭建web網(wǎng)站服務(wù)的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • 詳解Nginx 靜態(tài)文件服務(wù)配置及優(yōu)化

    詳解Nginx 靜態(tài)文件服務(wù)配置及優(yōu)化

    這篇文章主要介紹了Nginx 靜態(tài)文件服務(wù)配置及優(yōu)化,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-05
  • 查看nginx日志的實現(xiàn)

    查看nginx日志的實現(xiàn)

    在 Nginx 中,查看日志是診斷問題和監(jiān)控 Nginx 服務(wù)狀態(tài)的重要手段,本文主要介紹了查看nginx日志的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • Nginx進程殺不完的解決方法

    Nginx進程殺不完的解決方法

    這篇文章主要給大家介紹了Nginx進程殺不完的解決方法,文中通過圖文結(jié)合的方式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作有一定的幫助,,需要的朋友可以參考下
    2023-12-12
  • Nginx+Tomcat多站點部署的方法

    Nginx+Tomcat多站點部署的方法

    本篇文章主要介紹了Nginx+Tomcat多站點部署的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • Nginx反向代理出現(xiàn)502?Bad?Gateway問題解決

    Nginx反向代理出現(xiàn)502?Bad?Gateway問題解決

    在配置Nginx反向代理時遇到502 Bad Gateway錯誤,經(jīng)過排查發(fā)現(xiàn)是SSL握手問題,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-10-10
  • Nginx解決轉(zhuǎn)發(fā)地址時跨域的問題

    Nginx解決轉(zhuǎn)發(fā)地址時跨域的問題

    這篇文章主要介紹了Nginx實現(xiàn)轉(zhuǎn)發(fā)地址解決跨域問題的方法,文中介紹的很詳細,對大家的學(xué)習(xí)具有一定的參考借鑒價值,有需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-01-01
  • Nginx服務(wù)器中處理AJAX跨域請求的配置方法講解

    Nginx服務(wù)器中處理AJAX跨域請求的配置方法講解

    這篇文章主要介紹了Nginx服務(wù)器中處理AJAX跨域請求的配置方法講解,包括Nginx作Apache的反向代理時的配置方法,需要的朋友可以參考下
    2016-01-01
  • Nginx中add_header和proxy_set_header的區(qū)別及說明

    Nginx中add_header和proxy_set_header的區(qū)別及說明

    這篇文章主要介紹了Nginx中add_header和proxy_set_header的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06

最新評論