最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue+django項(xiàng)目部署全過(guò)程

 更新時(shí)間:2026年02月05日 08:51:35   作者:Wanncye  
文章介紹了如何部署一個(gè)多服務(wù)器架構(gòu)的項(xiàng)目,包括前端Vue和后端Django的部署,以及如何使用Nginx進(jìn)行反向代理和負(fù)載均衡,數(shù)據(jù)庫(kù)的主從復(fù)制和集群配置,以及靜態(tài)文件和反向代理的配置

部署相關(guān)概念

項(xiàng)目服務(wù)器架構(gòu)

我們希望別人能夠訪問(wèn)到我們的項(xiàng)目,包括界面,以及處理客服端發(fā)過(guò)來(lái)請(qǐng)求的API,這就需要我們把項(xiàng)目放到公網(wǎng)上面。

一般的服務(wù)器架構(gòu)如上圖:

  • 把vue客戶端放到一個(gè)服務(wù)器中,供用戶來(lái)訪問(wèn)靜態(tài)頁(yè)面。
  • 把django服務(wù)器端放到另外一個(gè)服務(wù)器,為用戶提供服務(wù)。但是會(huì)存在一個(gè)問(wèn)題:開發(fā)的時(shí)候環(huán)境一般都是單線程的,而且django大概只支持4-5萬(wàn)的同時(shí)訪問(wèn)量(并發(fā)量),那么,如果只有一臺(tái)django服務(wù)器,當(dāng)有好多人來(lái)請(qǐng)求服務(wù)器的時(shí)候,服務(wù)器就崩潰了。解決放案就是把服務(wù)端分放在多個(gè)服務(wù)器中,分擔(dān)高并發(fā)壓力。把服務(wù)端分放在多個(gè)服務(wù)器上,又會(huì)產(chǎn)生一個(gè)問(wèn)題:客服端發(fā)送的請(qǐng)求怎么知道它自己該訪問(wèn)哪一個(gè)服務(wù)器呢?這就需要在客戶端搭建一個(gè)Nginx服務(wù)器來(lái)做請(qǐng)求轉(zhuǎn)發(fā),把這個(gè)問(wèn)題交由Nginx來(lái)思考,后面會(huì)細(xì)講Nginx。
  • 把數(shù)據(jù)庫(kù)單獨(dú)存放在一個(gè)服務(wù)器上。根據(jù)實(shí)際的生產(chǎn)情況,我們得出結(jié)論:大部分項(xiàng)目中的數(shù)據(jù)庫(kù)操作,90%為讀操作,10%為寫操作,且寫操作一般是項(xiàng)目?jī)?nèi)部人員執(zhí)行。因此,我們可以把數(shù)據(jù)庫(kù)分成主庫(kù)和從庫(kù),配置不同的性能,主庫(kù)負(fù)責(zé)寫,從庫(kù)負(fù)責(zé)讀,提升數(shù)據(jù)庫(kù)性能。但是將數(shù)據(jù)庫(kù)分庫(kù)了,數(shù)據(jù)庫(kù)之間怎么保證數(shù)據(jù)同步呢?這個(gè)問(wèn)題需要下去查查。為了保證項(xiàng)目運(yùn)行的穩(wěn)定性,大公司還會(huì)有數(shù)據(jù)庫(kù)集群操作,也就是當(dāng)一組數(shù)據(jù)庫(kù)服務(wù)器掛了,還有一組備用的服務(wù)器能夠頂上來(lái),使得服務(wù)沒(méi)有中斷期。
  • 還可以有的劃分是:靜態(tài)文件服務(wù)器、Redis數(shù)據(jù)庫(kù)服務(wù)器等~

反向代理

  • 代理:客戶端不能夠直接找到服務(wù)器來(lái)處理自己的請(qǐng)求,代理就起到幫客戶端查找服務(wù)器在哪里的作用。
  • 正向代理:客戶端把請(qǐng)求發(fā)送給代理,代理找到服務(wù)器并發(fā)請(qǐng)求轉(zhuǎn)發(fā)服務(wù)器端,服務(wù)器把結(jié)果返回給客戶端。這個(gè)流程就是正向代理,上左圖。由于防火墻的原因,我們并不能直接訪問(wèn)谷歌,那么我們可以借助VPN來(lái)實(shí)現(xiàn),這就是一個(gè)簡(jiǎn)單的正向代理的例子。這里你能夠發(fā)現(xiàn),正向代理“代理”的是客戶端,而且客戶端是知道目標(biāo)的,而目標(biāo)是不知道客戶端是通過(guò)VPN訪問(wèn)的。
  • 反向代理:客戶端只向代理詢問(wèn)服務(wù)器在哪里而不把請(qǐng)求頁(yè)轉(zhuǎn)給代理,代理把服務(wù)器的位置告訴客戶端后,客戶端自己發(fā)送請(qǐng)求給服務(wù)器。(前面是自己的理解)這個(gè)過(guò)程就是反向代理,上右圖。別人的理解可能會(huì)更好一些:當(dāng)我們?cè)谕饩W(wǎng)訪問(wèn)百度的時(shí)候,其實(shí)會(huì)進(jìn)行一個(gè)轉(zhuǎn)發(fā),代理到內(nèi)網(wǎng)去,這就是所謂的反向代理,即反向代理“代理”的是服務(wù)器端,而且這一個(gè)過(guò)程對(duì)于客戶端而言是透明的。

前端部署

如果要讓nginx運(yùn)行起vue項(xiàng)目,需要將項(xiàng)目打包,生成原生的js代碼。自動(dòng)化程序會(huì)將打包的文件自動(dòng)生成到項(xiàng)目的dist文件夾中:

npm run build

上面這個(gè)命令是用之前安裝的webpack來(lái)進(jìn)行打包的。 

存在一個(gè)問(wèn)題,每一次新的部署,我們都需要重新配置環(huán)境,安裝這個(gè)軟件、安裝那個(gè)工具,這樣會(huì)很繁瑣,項(xiàng)目維護(hù)起來(lái)也不是很方便,所以我們引入docker。

它能夠在容器中配置環(huán)境,就相當(dāng)于一個(gè)操作系統(tǒng),別人要運(yùn)行我們的項(xiàng)目時(shí),不需要再安裝項(xiàng)目需求的依賴,只需要把我們的這個(gè)容器安裝好,里面就自帶了項(xiàng)目需要的依賴,很是方便。

docker

前面說(shuō)了docker是拿來(lái)干什么用的,這里再說(shuō)說(shuō)docker的一些特點(diǎn)吧:

  • “Build, Ship and Run”(搭建、運(yùn)輸、運(yùn)行)
  • “Build once,Run anywhere”(一次搭建,到處運(yùn)行)

還是那句話,別人要運(yùn)行你的項(xiàng)目的時(shí)候,直接安裝你的docker就行了。

docker相關(guān)的概念如上圖,我們?cè)谙旅孀鲆幌轮v解:

  • 鏡像:還沒(méi)有運(yùn)行起來(lái)的操作系統(tǒng)文件叫做鏡像。每一個(gè)鏡像中都包含了一個(gè)微型操作系統(tǒng),但只會(huì)安裝一些運(yùn)行項(xiàng)目相關(guān)的依賴。我們可以從同事手中,或者開源社區(qū)獲取到自己想要的鏡像。自己也可以把自己創(chuàng)建的docker分享給別人。
  • 容器:鏡像運(yùn)行的地方就是容器。這個(gè)容器我們不能提供給別人,但是我們可以進(jìn)入這個(gè)容器進(jìn)行一些相關(guān)依賴安裝。就可以想象成一臺(tái)電腦,我們能夠在電腦上安裝python 、c++、npm。在我們安裝好相應(yīng)的依賴之后,需要將當(dāng)前的容器狀態(tài)保存成鏡像,這樣我們又能夠提供給別人了。

docker安裝(mac)

使用常見命令

# 啟動(dòng)docker
sudo service docker start

# 停止docker
sudo service docker stop

# 重啟docker
sudo service docker restart

# 列出鏡像
docker image ls

# 拉取鏡像
docker image pull library/hello-world

# 刪除鏡像
docker image rm 鏡像id/鏡像ID


# 創(chuàng)建容器,必須先有鏡像,才能運(yùn)行創(chuàng)建容器,如果不指定任何參數(shù),容器開機(jī)了馬上就回關(guān)機(jī)
docker run [選項(xiàng)參數(shù)] 鏡像名 [命令]
# 例如:使用ubuntu鏡像,創(chuàng)建一個(gè)名為ubuntu1
docker pull ubuntu:18.04
docker run -it --name=ubuntu1 ubuntu:18.04 bash
# 注意:必須啟動(dòng)的時(shí)候,讓容器運(yùn)行bash解析器,才能在接下來(lái)的操作讓容器不會(huì)立刻關(guān)閉,而且也能夠讓我們可以輸入linux終端命令, 如果我們一般創(chuàng)建一個(gè)容器,選項(xiàng)都是: -itd
# docker run的選項(xiàng)
# -t 表示容器啟動(dòng)后會(huì)進(jìn)入其命令行終端
# -i 表示以“交互模式”運(yùn)行容器
# --name 表示設(shè)置容器的名稱
# -d 創(chuàng)建一個(gè)守護(hù)式容器在后臺(tái)運(yùn)行(這樣創(chuàng)建容器后不會(huì)自動(dòng)登錄容器,如果只加-i -t 兩個(gè)參數(shù),創(chuàng)建后就會(huì)自動(dòng)進(jìn)去容器)
# 例如,使用ubuntu鏡像,創(chuàng)建一個(gè)名為ubuntu2,并且在后臺(tái)運(yùn)行的容器像
docker run -itd --name=ubuntu2 ubuntu<:版本> ubuntu

# 進(jìn)入容器,要進(jìn)入容器,必須當(dāng)前容器是啟動(dòng)狀態(tài)的
docker container exec -it <容器名稱/容器ID>  <第一個(gè)命令>

# 所有正在啟動(dòng)運(yùn)行的容器
docker container ls

# 所有容器[不管是否在啟動(dòng)運(yùn)行中]
docker container ls --all                

# 停止一個(gè)已經(jīng)在運(yùn)行的容器
docker container stop 容器名或容器id

# 啟動(dòng)一個(gè)已經(jīng)停止的容器
docker container start 容器名或容器id

# kill掉一個(gè)已經(jīng)在運(yùn)行的容器
docker container kill 容器名或容器id

# 刪除容器
docker container rm 容器名或容器id

# 把容器保存成鏡像
docker commit <容器名稱/容器ID>  <新鏡像名>

# 把docker中的鏡像打包成文件,用于分享發(fā)送給他人,或備份
docker save -o <文件名.tar.gz>  <鏡像名>

# 把鏡像文件加載到docker中
docker load -i <文件名.tar>


#官方提供的ubuntu系統(tǒng)鏡像,工具命令很少,如希望內(nèi)部安裝ping、ifconfig網(wǎng)卡或者vim等工具,可以通過(guò)以下命令進(jìn)行設(shè)置[需要聯(lián)網(wǎng),而且耗時(shí)]
apt-get update
apt install net-tools        # ifconfig 
apt install iputils-ping     # ping

nginx

Nginx是一款基于異步框架的輕量級(jí)/高性能的Web 服務(wù)器/反向代理服務(wù)器/緩存服務(wù)器/電子郵件(IMAP/POP3)代理服務(wù)器,并在一個(gè)BSD-like協(xié)議下發(fā)行。

由俄羅斯的程序設(shè)計(jì)師Igor Sysoev(伊戈?duì)?middot;賽索耶夫)所開發(fā),最初供俄國(guó)大型網(wǎng)站Rambler.ru及搜尋引擎Rambler使用。

有如下功能:

  • 反向代理,前面說(shuō)過(guò)了
  • 因?yàn)榭梢苑聪虼?,所以能夠?strong>負(fù)載均衡。所謂負(fù)載均衡就是在并發(fā)量很高的情況下,nginx可以讓平均每個(gè)后端服務(wù)器接受的請(qǐng)求量。
  • 熱部署。所謂熱部署,就是配置文件nginx.conf修改后,不需要stop Nginx,不需要中斷請(qǐng)求,就能讓配置文件生效!

下載安裝nginx鏡像

# 在docker中下載nginx鏡像
docker image pull nginx

# 把前面使用npm run dev創(chuàng)建好的dist文件夾按下面的命令運(yùn)行
# 創(chuàng)建nginx容器,并以80端口對(duì)外提供服務(wù)
# /usr/share/nginx/html 是nginx在安裝時(shí),系統(tǒng)默認(rèn)分配的網(wǎng)站項(xiàng)目的根目錄
docker run  -itd -p 80:80 -v /home/luffy/lufei_pc/dist:/usr/share/nginx/html --name=lufei_pc nginx
# 執(zhí)行上面的命令,理論上來(lái)說(shuō),就可以讓前端項(xiàng)目在公網(wǎng)的IP地址訪問(wèn)到了。

其中docker run的參數(shù)值得說(shuō)一說(shuō):

docker run 選項(xiàng):

  • -v 目錄映射,把服務(wù)器中的真實(shí)目錄,映射到 容器內(nèi)部的指定目錄,當(dāng)容器內(nèi)部操作指定目錄時(shí),則相當(dāng)于操作服務(wù)器里面的真實(shí)目錄
  • -p 端口映射,把服務(wù)器中的真實(shí)端口,映射到 容器內(nèi)部的執(zhí)行端口,當(dāng)用戶訪問(wèn)/操作真實(shí)端口時(shí),則相當(dāng)于訪問(wèn)/操作容器里面的端口

上面部署命令之后,我們就可以通過(guò)IP來(lái)訪問(wèn)項(xiàng)目了,但是我們項(xiàng)目一般通過(guò)域名提供給用戶來(lái)進(jìn)行訪問(wèn)的。

?

域名解析

通過(guò)上面的步驟,我們可以通過(guò)訪問(wèn)IP地址來(lái)得到前端頁(yè)面,但是如果有多個(gè)域名同時(shí)都指向這個(gè)服務(wù)器,則所有的域名都會(huì)訪問(wèn)到同一個(gè)項(xiàng)目中,所有我們把不同的域名和不同的項(xiàng)目目錄進(jìn)行配置綁定。

這里就需要手動(dòng)配置nginx的配置了:

# 進(jìn)入nginx容器,修改/etc/nginx/conf.d/default.conf文件
# 要在容器里面編輯文件,可以通過(guò) apt-get update 和 apt install vim 來(lái)安裝一個(gè)編輯器。
docker container exec -it <容器名稱/容器ID> bash
vim /etc/nginx/conf.d/default.conf
# 修改 server_name 對(duì)應(yīng)的路徑
server{
  listen   80;
  server_name  3w.lxh1.com;
  
  # ...
}

# 按Esc鍵
# 輸入 :wq 保存文件

# 重啟nginx
nginx -s reload

后端部署

根據(jù)我們之前分析的項(xiàng)目部署架構(gòu),后端需要需要mysql和redis。所有再此我們需要先把這些外部工具先預(yù)裝。

MySQL鏡像

# 如果之前的mysql已經(jīng)鏡像沒(méi)有下載,則下載命令如下:
docker image pull mysql:5.7
# -e 設(shè)置容器內(nèi)部的環(huán)境變量,一個(gè)容器在創(chuàng)建的時(shí)候,可以多個(gè)不同的環(huán)境
# 啟動(dòng)mysql容器,MYSQL_ROOT_PASSWORD 指代的就是mysql的root用戶的登錄密碼
docker run -itd -p3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
# 如果需要多臺(tái)mysql容器安裝在一臺(tái)服務(wù)器中,那么容器內(nèi)部的端口可以不用設(shè)置,但是真實(shí)物理系統(tǒng)的端口必須要修改,保證端口唯一!

# 我們可以在任意一個(gè)外部網(wǎng)路中,遠(yuǎn)程鏈接到數(shù)據(jù)庫(kù)中
# 注意使用命令遠(yuǎn)程鏈接mysql,必須使用的地方有mysql
mysql -hIP -P端口 -uroot -p密碼
# mysql -uroot -p123456 -h39.108.60.95

值得注意的是docker container run的選項(xiàng):

-e 就是設(shè)置容器內(nèi)部的環(huán)境變量, 在docker容器的使用過(guò)程中, 有部分容器需要配置環(huán)境的,這些環(huán)境變量都是有下載鏡像時(shí)官方指定的。

接著把數(shù)據(jù)庫(kù)中的數(shù)據(jù)導(dǎo)入到服務(wù)器的docker中:

# 遠(yuǎn)程鏈接數(shù)據(jù)庫(kù)
mysql -uroot -p123456 -h39.108.60.95`在這里插入代碼片`
# 創(chuàng)建數(shù)據(jù)庫(kù)
create database luffy charset=utf8mb4;
exit
# 把本地的數(shù)據(jù)庫(kù)導(dǎo)出到桌面
mysqldump -uroot -p123 luffy > ~/Desktop/luffy.sql

# 把桌面下導(dǎo)出的數(shù)據(jù)庫(kù)文件導(dǎo)入到docker容器中的mysql數(shù)據(jù)庫(kù)
mysql -uroot -p123456 -h39.108.60.95 luffy <  ~/Desktop/luffy.sql

Redis鏡像

# 因此我們需要在docker中下載redis和mysql的容器
docker pull redis

# 創(chuàng)建redis容器并運(yùn)行redis
docker run -itd -p6379:6379 redis
    
# 可以進(jìn)入到容器中,進(jìn)行測(cè)試redis是否已經(jīng)成功啟動(dòng)
docker container exec -it <容器名稱/容器ID> bash

# 容器內(nèi)部,執(zhí)行 redis-cli

部署前處理

  • 現(xiàn)在的配置,保存在dev.py中,不管數(shù)據(jù)庫(kù)密碼或者redis的地址或者配置信息都是屬于開發(fā)階段,項(xiàng)目上線以后,肯定換成公司的。所以一定會(huì)修改,我們需要把dev.py的內(nèi)容移動(dòng)到prod.py中,并修改對(duì)應(yīng)的配置信息
  • 在本地開發(fā)時(shí),我們使用的框架運(yùn)行在debug模式下的,但是項(xiàng)目上線時(shí),會(huì)關(guān)閉debug,所以我們?nèi)绻P(guān)閉了debug模式,則drf框架會(huì)不再提供靜態(tài)文件的瀏覽服務(wù),也就是之前xadmin,drf的接口頁(yè)面的圖片,樣式或者js文件都不能訪問(wèn)到了。我們需要收集這些文件到外界,后面通過(guò)nginx來(lái)對(duì)外提供瀏覽服務(wù)
  • 原來(lái)的drf項(xiàng)目是運(yùn)行在python內(nèi)置的提供的web服務(wù)器中,wsgiref
  • 在項(xiàng)目上線的時(shí)候,我們不能使用這個(gè)模塊來(lái)提供對(duì)外服務(wù)!不支持多線程,性能不好,本身在安全性上并不完善,python提供這個(gè)模塊僅供學(xué)習(xí)和開發(fā)測(cè)試使用。runserver 不能用于生產(chǎn),改成uwsgi
  • 原來(lái)drf項(xiàng)目在本地開發(fā)時(shí),其實(shí)要運(yùn)行這個(gè)項(xiàng)目,我們是安裝了很多的以來(lái)模塊。將來(lái)項(xiàng)目上線了,我們也肯定需要把本地的模塊同步到線上服務(wù)器!否則項(xiàng)目跑不起來(lái)

從服務(wù)端項(xiàng)目中收集靜態(tài)文件

當(dāng)Django運(yùn)行在生產(chǎn)環(huán)境中,我們會(huì)關(guān)閉debug調(diào)試,那么項(xiàng)目將不再提供靜態(tài)文件的支持,需要將靜態(tài)文件交給靜態(tài)文件的nginx服務(wù)器來(lái)提供訪問(wèn)。

我們先收集所有靜態(tài)文件。項(xiàng)目中的靜態(tài)文件除了我們使用的上傳文件之外,django本身還有自己的靜態(tài)文件,如rest_framework、xadmin、admin、ckeditor等。我們需要收集這些靜態(tài)文件,集中一起放到靜態(tài)文件服務(wù)器中。

我們要將收集的靜態(tài)文件放到項(xiàng)目的static目錄中,所以先創(chuàng)建目錄static。

Django提供了收集靜態(tài)文件的方法。先在配置文件中配置收集之后存放的目錄

settings/prod.py和dev.py ,代碼:

STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), 'static')

因?yàn)槟壳霸诒镜匚覀円廊皇褂昧薲ev.py文件運(yùn)行項(xiàng)目,所以我們?cè)诒镜仨?xiàng)目收集靜態(tài)文件就需要把配置信息同步到dev.py。

在終端下執(zhí)行收集命令

python manage.py collectstatic

uwsgi服務(wù)器執(zhí)行django項(xiàng)目

安裝uwsgi

pip install uwsgi
uwsgi --version

修改配置

在luffyapi下的wsgi.py中修改:

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'luffy.settings.prop')

配置uwsgi.ini

在項(xiàng)目根目錄下創(chuàng)建uwsgi.ini,寫入:

[uwsgi]
#使用nginx連接時(shí)使用,Django程序所在服務(wù)器地址
# socket=0.0.0.0:8000
#直接做web服務(wù)器使用,Django程序所在服務(wù)器地址
http=0.0.0.0:8000
#項(xiàng)目目錄
chdir=/home/moluo/luffyapi
#項(xiàng)目中wsgi.py文件的目錄,相對(duì)于項(xiàng)目目錄
wsgi-file=luffycity/wsgi.py
# 進(jìn)程數(shù)
processes=4
# 線程數(shù)
threads=2
# uwsgi服務(wù)器的角色
master=True
# 存放進(jìn)程編號(hào)的文件
pidfile=uwsgi.pid
# 日志文件,因?yàn)閡wsgi可以脫離終端在后臺(tái)運(yùn)行,日志看不見。我們以前的runserver是依賴終端的
daemonize=uwsgi.log
# 指定依賴的虛擬環(huán)境
virtualenv=/root/.virtualenvs/luffy

啟動(dòng)uwsgi服務(wù)器

uwsgi --ini uwsgi.ini

容器中配置運(yùn)行環(huán)境

  1. pip freeze導(dǎo)出項(xiàng)目依賴,用pip install在容器中安裝相關(guān)依賴
  2. 安裝好python等環(huán)境之后,使用uwsgi --ini uwsgi.ini來(lái)啟動(dòng)uwsgi,通過(guò)使用uwsgi作為http服務(wù)器先,后面再使用nginx來(lái)代理。

靜態(tài)文件的訪問(wèn)支持

因?yàn)橹霸谇岸隧?xiàng)目部署的時(shí)候,已經(jīng)有了一個(gè)nginx容器,所以我們接下來(lái),就直接讓前端的nginx容器同時(shí)提供靜態(tài)文件的訪問(wèn)支持。

進(jìn)入前端nginx容器并在nginx的配置文件default.conf里面的server部分中配置提供靜態(tài)文件的訪問(wèn)!先刪除前端的vue項(xiàng)目的容器,然后再創(chuàng)建一個(gè)新的nginx容器,同時(shí)在創(chuàng)建的時(shí)候,我們進(jìn)行目錄映射。

前端項(xiàng)目要映射到容器,同時(shí)還要把a(bǔ)pi項(xiàng)目的static靜態(tài)文件目錄也要映射到該容器中。

# 先把現(xiàn)有的前端nginx容器打包成鏡像
docker commit  lufei_pc  front

# 停止并刪除前端nginx服務(wù)容器
docker container stop lufei_pc
docker container rm lufei_pc

# 基于上面的front鏡像重新創(chuàng)建一個(gè)容器。
# 真實(shí)服務(wù)器下的客戶端vue項(xiàng)目目錄     /home/luffy/lufei_pc/dist 
# 真實(shí)服務(wù)器下的服務(wù)端drf項(xiàng)目目錄     /home/luffy/luffyapi/static
docker run -itd -p 80:80 -v /home/luffy/lufei_pc/dist:/usr/share/nginx/html -v /home/luffy/luffyapi/static:/usr/share/nginx/static --name=lufei_pc front

創(chuàng)建完容器以后,通過(guò)訪問(wèn)客戶端url地址,沒(méi)有問(wèn)題以后,我們接下里就要在前端容器中編寫nginx的配置文件,寫上提供靜態(tài)文件訪問(wèn)支持的配置信息.配置文件default.conf,內(nèi)容如下:

upstream luffy {
    server 120.77.220.233:8000;
    # server 120.77.220.233:8001;
}

server {
    listen  80;
    server_name api.lxh1.com;

    location / {
        include uwsgi_params;
        uwsgi_pass luffy;
    }
    
    location /static {
        root /usr/share/nginx;
    }
    
}


server {
    listen       80;
    server_name  3w.lxh1.com;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
        try_files $uri $uri/ /index.html;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}

重啟nginx,使用shop.lxh1.com訪問(wèn)運(yùn)營(yíng)后臺(tái),樣式就正常了。

nginx -s reload.重啟nginx,重新訪問(wèn)。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

陆川县| 天全县| 红原县| 乐安县| 新余市| 嘉义县| 衡山县| 广河县| 五常市| 镇康县| 瑞昌市| 晴隆县| 鄢陵县| 申扎县| 长垣县| 博白县| 和田县| 丰台区| 大荔县| 滨海县| 广南县| 孟村| 巴彦县| 普定县| 印江| 庐江县| 无锡市| 舞阳县| 卢氏县| 湖北省| 宾阳县| 潢川县| 浪卡子县| 静乐县| 泰来县| 长武县| 益阳市| 双辽市| 丹江口市| 阳朔县| 平凉市|