前後端分離時候靜態頁面ngix部署專案

2021-09-27 12:32:31 字數 2939 閱讀 1427

注:以下所有內容來自於實踐專案,都是自己的總結,希望能為你所用!

yum安裝nginx

親測可用:

解決跨域:

從django層面修改settings配置,自定義中介軟體,**

middleware.py檔案

class mycors(middlewaremixin):

def process_response(self, request, response):

response["access-control-allow-origin"] = "*"

if request.method == "options":

response["access-control-allow-headers"] = "content-type"

response["access-control-allow-methods"] = "delete, put, post"

return response

settings.py檔案

middleware = [

'目錄.middleware.mycors',

...]

使用nginx+uwsgi部署django專案

前後端分離專案無法共享登陸session解決方案(使用token判定)

1.使用token進行認證

2.使用jwt進行認證

原理很簡單,前端傳乙個使用者唯一憑證,比如username,後端經過token加密,返回給前端(之前研究這個踩過不少坑)

參考資料:

settings.py配置

settings.py配置

......,

'rest_framework',

'rest_framework.authtoken', # 設定token

]jwt_auth =

登陸**demo

from rest_framework_jwt.settings import api_settings

@api_view(['get'])

def test_login(request):

"""# 登陸測試介面

"""demo = 'demo11'

user = user.objects.create(wx_openid='demo', code=demo, wx_pic=demo, wx_name=demo, ***=1, p_id=0)

jwt_payload_handler = api_settings.jwt_payload_handler

jwt_encode_handler = api_settings.jwt_encode_handler

payload = jwt_payload_handler(user) # 預設7天過期,可以修改設定

json.dumps(, ensure_ascii=false, cls=dateencoder),

跨域增加部分headers驗證引數之後解決方案

異常:django 跨越報錯 ?: (corsheaders.e013) origin '127.0.0.1:8080' in cors_origin_whitelist is missing schem

django專案部署:

不再使用nohup python runserver的方式部署django

改用nginx

runserver 方法是除錯 django 時經常用到的執行方式,它使用 django 自帶的

wsgi server 執行,主要在測試和開發中使用,並且 runserver 開啟的方式也是單程序 。

踩過不少坑,請參考我的配置,配置可用,之前把http寫成socket了

專案路徑建立m_uwsgi.ini

[uwsgi]

#專案目錄

chdir = /code/media_manager

#使用nginx連線時, 監控位址,注,這裡要寫伺服器內網位址

;socket=0.0.0.0:8000

#直接做web伺服器時, 所監控位址

#程序個數

workers = 10

;pidfile=/opt/script/uwsgi.pid

#指定靜態檔案

;static-map = /static=/opt/ourblog/static

;uid = root #使用者

;gid = root #組

#啟用主程序

master = true

#自動移除unix socket和pid檔案當服務停止的時候

vacuum = true

#啟用執行緒

enable-threads = true

#序列化接受的內容,如果可能的話

thunder-lock = true

#設定自中斷時間

harakiri = 30

#設定緩衝

;post-buffering = 65536

#設定日誌目錄

daemonize = /log/media_manager/m_uwsgi.log

wsgi-file = media_manager/wsgi.py

# 儲存主程序pid檔案

pidfile = uwsgi.pid

buffer-size = 65536

啟動方式 uwsgi --ini /專案路徑/m_uwsgi.ini &

nginx配置,nginx後面加server:

server 

}

前後端分離 頁面許可權驗證

前端驗證 登入後 新增登入標識 localstorage.login true inc.js 公共標頭檔案處理,沒有登入 跳轉登入 top.location.href 獲取本地絕對路徑或網域名稱訪問路徑 var href document.location.href var abspath absp...

前後端分離

關於前後端分離的一些好的文章推薦 前端框架 為什麼前後端分離 最直白的理解,我認為是因為在開發過程中,前端總是需要等待後端的環境搭建好之後,前端才能獲取相關資料,對於前端的開發影響很大,事實上前端並不關心後端的開發,那麼有沒有方法不讓後端影響前端的開發呢?其實後端提供的是什麼?乙個執行伺服器,乙個就...

前後端分離

在此說明 前後端分離有利於後端的快速開發,但並不利於搜尋引擎優化 seo 上圖能清晰的看到,使用前後端分離模式進行開發,瀏覽器會向伺服器傳送請求,伺服器會向瀏覽器傳送乙個類似框架的html,是固定的空殼,此時瀏覽器再使用ajax請求向後端伺服器索要資料,後端伺服器返回json字串給瀏覽器,從而使瀏覽...