uwsgi部署監控項目小記

 

linux複習技能彙總

linux基礎命令

linux編譯python3與虛擬環境統一開發、線上環境

python web項目部署 uwsgi+nginx

nginx反向代理  多虛擬主機 負載均衡配置

crm用nginx反向代理部署,靜態文件處理

前後端分離項目部署  vue + drf + mysql + nginx + redis




redis基礎數據類型 主從賦值 哨兵 集羣 數據持久化

docker容器基礎  鏡像 倉庫 容器管理  dockerfile構建鏡像

消息隊列rabbitmq

運維自動化軟件






http://linux.51yip.com linux在線查詢













ls -a 顯示隱藏的文件
ll  等於 ls -l 
date -f  格式化linux時間
shutdown 關機命令
cat 查看文件內容
pwd  查看當前所在工作目錄
mkdir  創建文件見  mkdir -p  /s21/douyin/haohaio  
echo  相當於print    能夠輸出變量的值   輸出PATH的值 echo  $PATH   $符號是取出linux變量值的符號 
ifconfig  查看linux的網卡信息
free -m  查看linux內存信息
vim linux的文本編輯器
yum  linux軟件包管理器   yum install nginx/redis 
rm -rf  rm是刪除命令  -r 遞歸刪除文件  -f 不提示強制刪除

rm -rf /*  刪庫到跑路,慎用!!!!
rm -rf /*  刪庫到跑路,慎用!!!!
rm -rf /*  刪庫到跑路,慎用!!!!


cd 切換文件夾
cp 複製文件 文件夾
source  加載  執行linux腳本內容  source test.sh 
history  查看linux歷史命令
chgrp 修改文件的組信息  chgrp  alex  test.txt 
wc   統計文件文本數據
tail 默認顯示文本後10行   tail -f file.txt 實時刷新文件
tr 切換刪除字符

tar  
	打包 /tmp下所有的內容 叫做 alltmp.tar
	tar  -cvf 
		-c 打包文件
		-v 顯示打包過程
		-f 必須寫在參數結尾,指定壓縮壓縮文件名字
	
	tar -cvf alltmp.tar  /tmp/*


tar 壓縮且打包,節省磁盤空間
	tar -zcvf 壓縮文件名  你要壓縮的內容



lsattr 查看文件是否加鎖 
取出文件的鎖
[root@wupeiqi tmp]#lsattr jiangyi/
-----a---------- jiangyi/a.txt



find  查找的命令

	#找噹噹前目錄下 所有的 .py文件
	
	#語法:find  從哪找   參數  你要找什麼
	find  .  -type f   -name   "*.py"
		-name 指定文件名字
		-type  指定文件類型   f 是文本  d是文件夾


cut  切割輸出信息

touch 創建文本
man  linux的幫助文檔
ln 創建鏈接

mv 移動文件,文件夾
stat 查看文件詳細信息
kill 殺死進程   kill -9 pid 進程id號

ps  查看linux進程信息

sort 排序
tree 以樹狀圖顯示文件目錄結構
gz 壓縮 

grep 過濾字符信息的

	#找到django的配置信息,是否允許所有主機訪問
		settings.py 
		ALLOW_HOSTS=['*']
		
	grep 你想要的內容 從哪給文件找
	
	grep -i "allow"  settings.py 
		-i忽略大小寫 
			

chown  更改文件屬主,更改user
tr 刪除

ssh-key -gen 創建ssh密鑰
whoami  我是誰,查看當前登陸的用戶是誰
iptables -F 清空防火強規則
more 分頁顯示文本內容
which 顯示linux命令的絕對路徑  
	which  python3  #which會去path變量中尋找,是否有python3
	/opt/python36/bin/python3

wget 在線下載一個資源

wget http://pythonav.cn/xiaobo.jpg  在線下載一個圖片


	
#linux和windows互相傳遞文件的方式
	- yum install lrzsz  這個工具
		- sz  (send 發送文件)
		-  rz  (recive 接收文件)
	-  xftp 


useradd 創建系統用戶  uid用戶id 
#linux用戶信息存放文件是?
/etc/passwd  #用戶信息在這
通過useradd創建的用戶id默認從1000開始
root的uid是0,代表他是超級用戶

id  root #查看root的信息



/etc/  linux的默認配置文件目錄
	通過yum安裝軟件,默認的配置文件都會放在這
	/etc/my.cnf 
	/etc/nginx.conf 
	
	
	/etc/ 存放配置文件的
	/opt/ 存放第三方自行安裝的軟件的目錄,約定俗稱
	/root  root的家目錄,皇宮,普通用戶無權訪問
	/tmp   linux的臨時文件夾,數據不重要
	/usr   常見的命令放在/usr/bin/ls   /usr/bin/cd 
	/home 普通用戶的統一管理家目錄 
	
	

diff 比較文件區別
df 查看磁盤信息


uptime 顯示系統運行時間,負載情況
w 顯示登陸的所有用戶身份

mount 掛載磁盤目錄
rpm linux的軟件包管理命令,這個很low,很爛別用,用yum
sudo  linux用戶的尚方寶劍 ,


  pengpeng 普通用戶
  
  
sudo  linux的提權命令,以root身份去執行命令,需要提前配置才能用

配置步驟
1.打開sudoers文件,添加配置信息
vim /etc/sudoers

2.添加用戶信息
## Allow root to run any commands anywhere 
root	ALL=(ALL) 	ALL
xiaofeng ALL=(ALL)      NOPASSWD: ALL
jy  ALL=(ALL)      NOPASSWD: ALL


3.此時 jy 和xiaofeng用戶已經可以使用sudo了

4. visudo 也是打開/etc/sudoers文件,但是它提供語法檢測功能






1.python3編譯安裝,通過虛擬環境管理django項目


1.python3在linux下的編譯過程

	2.首先解決環境依賴問題,如gcc編譯工具等
	得先保證yum源配置好
	配置步驟
	1.打開阿里雲開源鏡像站的官網https://opsx.alibaba.com/mirror

	2.獲取cengtos的yum源
	#yum源的工作目錄,/etc/yum.repos.d目錄下,只要在這個目錄下名字叫做repo的文件,都會被yum取讀取
	wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo



	3.獲取epel的yum源(第三方軟件倉庫,如nginx,redis等等)
	wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo



2.解決編譯python3的基礎環境依賴
yum install gcc patch libffi-devel python-devel  zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y


3.下載python3源碼包
wget https://www.python.org/ftp/python/3.6.7/Python-3.6.7.tar.xz

4.解壓縮源代碼包,進入py源代碼包,開始編譯三部曲

	1.第一曲 [執行configure腳本文件,指定安裝路徑]  ,釋放makefile編譯文件 ,讓gcc工具去編譯的
		[root@wupeiqi Python-3.6.7]#./configure --prefix=/opt/s21/python367/  

	2.第二曲 ,指定make指令,讀取makefile,開始編譯
	
	3.第三曲,執行make install ,開始安裝python3,這一步會生成python3解釋器 
	
	make && make install 
	
5.編譯完成之後,配置path環境變量,讓系統可以補全python3的命令
	#獲取當前環境變量
	[root@wupeiqi bin]#echo $PATH
	/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

	#添加python3的環境變量,注意,要添加到開頭
	#添加python3的環境變量,注意,要添加到開頭
	#添加python3的環境變量,注意,要添加到開頭
	#添加python3的環境變量,注意,要添加到開頭
	#添加python3的環境變量,注意,要添加到開頭
	#添加python3的環境變量,注意,要添加到開頭
	
	注意要寫入到全局變量配置文件中,每次開機都加載/etc/profile中
	
	vim /etc/profile 到最低行,加入如下配置
	
	PATH='/opt/s21/python367/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin'
	
	注意,修改完畢/etc/profile 必須 source讀取一下
	source /etc/profile 
	



6.安裝虛擬環境,管理python的解釋器
	1.安裝虛擬環境工具,裝在物理解釋器地下
		pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv
	
	2.通過命令創建虛擬環境
		virtualenv --no-site-packages --python=python3    虛擬環境的名字
			--no-site-packages 	 創建乾淨隔離的虛擬環境,沒有任何模塊	
			--python=python3   #指定以哪個解釋器去分身 
		
		virtualenv --no-site-packages --python=python3    s21Django1
		
	3.激活虛擬環境,進入虛擬環境,無論是否激活python虛擬環境,影響的只是python相關的東西,和操作系統無關
	3.激活虛擬環境,進入虛擬環境,無論是否激活python虛擬環境,影響的只是python相關的東西,和操作系統無關
	3.激活虛擬環境,進入虛擬環境,無論是否激活python虛擬環境,影響的只是python相關的東西,和操作系統無關
	3.激活虛擬環境,進入虛擬環境,無論是否激活python虛擬環境,影響的只是python相關的東西,和操作系統無關
		
		source s21Django1/bin/activate
		
	4.在虛擬環境下,啓動crm項目
		-上傳crm代碼到linux服務器
		
	5.激活虛擬環境,安裝django1.11.11
		source s21Django1/bin/activate
		pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple django==1.11.1
		pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple pymysql 
		pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple django-multiselectfield

	6.安裝mariadb 
		yum install mariadb-server mariadb -y
		
	7.啓動mariad,通過yum安裝的軟件,都可以用systemctl管理
		systemctl start maridab
	
	8.解決完畢問題之後,啓動python項目,注意防火牆,ALLOW_HOSTS相關的修改
	8.解決完畢問題之後,啓動python項目,注意防火牆,ALLOW_HOSTS相關的修改
	8.解決完畢問題之後,啓動python項目,注意防火牆,ALLOW_HOSTS相關的修改
	
	python3 manage.py runserver 
			
	9.可以退出虛擬環境了
	deactivate 

#python導出requirement.txt文件

#把你當前解釋器所有的模塊信息,導出到一個文件中
pip3 freeze > requirement.txt
#導出後發送此文件給服務器即可

#安裝安裝中的模塊
pip3 install  -i https://pypi.douban.com/simple -r requirements.txt
	
	
	
nginx軟件學習

nginx是個web服務器,常用作靜態文件服務器,反向代理服務器,郵件代理服務器,負載均衡服務器 

1.安裝淘寶nginx,編代碼編譯安裝,先解決模塊依賴
yum install gcc patch libffi-devel python-devel  zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel openssl openssl-devel -y

2.獲取淘寶nginx的源代碼
wget http://tengine.taobao.org/download/tengine-2.3.2.tar.gz


3.解壓縮源代碼包
tar -zxvf tengine-2.3.2.tar.gz

4.進入源代碼目錄開始編譯三部曲
	1.指定安裝路徑
		./configure --prefix=/opt/s21/tngx

	2.編譯且安裝
		make && make install 
	
	3.安裝完成之後,進入nginx的目錄,
		[root@wupeiqi tngx]#pwd
		/opt/s21/tngx
		[root@wupeiqi tngx]#ls
		conf  html  logs  sbin
		
		conf 存放配置文件 , 指定了這個軟件各種功能的一個文件而已  
		html 存放前端頁面
		logs nginx的運行日誌
		sbin  nginx的可執行命令目錄
		
		
		
	4.進入sbin目錄,啓動nginx
	./nginx  
	./nginx -s stop 停止nginx
	./nginx -t  檢查nginx.conf的語法是否正確
	./nginx -s reload  不重啓nginx,重新加載nginx配置
	
nginx的核心學習方式,配置文件學習

1.找到nginx.conf,學習語法
#這裏的所有配置是nginx的核心功能
http {

....
}


2.nginx的訪問日誌功能
http {
    include       mime.types;
    default_type  application/octet-stream;
	#日誌格式化
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  logs/access.log  main;                                               
	
	
	....
	
	
}

3.nginx的虛擬主機配置,核心功能再次


http {
	#nginx支持多虛擬主機,只需要寫入多個server關鍵字即可
	#虛擬主機1
	
	    server {
			#基於端口的虛擬主機區分 
			listen       80;
			#基於域名的虛擬主機區分
			server_name  www.old21.com;
			#charset koi8-r;
			#access_log  logs/host.access.log  main;
			#access_log  "pipe:rollback logs/host.access_log interval=1d baknum=7 maxsize=2G"  main;
			
			#這裏是nginx的url匹配,如同django的url規則一樣
			#當我的請求時 http://192.168.182.130:81/chouhuo.jpg  這樣的時候,就進入如下location匹配
			#這個是最低級的匹配,所有請求都會走到這裏
			location / {
				#root關鍵字定義虛擬主機的根目錄, 這裏是可以修改的
				root   /opt/alex/;
				#必須保證首頁文件存在
				index  index.html index.htm;
			}
		}

	#虛擬主機2 
	server {
			listen       80;
			server_name  www.old22.com;
			#charset koi8-r;
			#access_log  logs/host.access.log  main;
			#access_log  "pipe:rollback logs/host.access_log interval=1d baknum=7 maxsize=2G"  main;
			
			#這裏是nginx的url匹配,如同django的url規則一樣
			#當我的請求時 http://192.168.182.130/wupeiqi.jpg  這樣的時候,就進入如下location匹配
			#這個是最低級的匹配,所有請求都會走到這裏
			location / {
				#root關鍵字定義虛擬主機的根目錄, 這裏是可以修改的
				root   /opt/wupeiqi/;
				#index參數是定義首頁文件的名字的
				index  index.html index.htm;
			}
	
	}

}


4.nginx的錯誤頁面 404優化
server {
        listen 80;
        server_name www.old666.com;   
#通過這個參數定義即可,		
        error_page  404              /404.html;
        location / {
                root   /opt/wupeiqi;
                index index.html;
        }

}


5.nginx反向代理

代理:

用戶,客戶端    中介,代理服務器,   房東,資源服務器


租房的客戶  ->  中介,代理  ->   房東 


瀏覽器 -> nginx  ->  django 



環境如下
機器1 192.168.182.130  ,是代理服務器的角色,nginx提供的功能

機器2   192.168.182.131  是資源服務器的角色,  nginx靜態資源服務器


反向代理服務器配置如下

1.打開192.168.182.130 機器的nginx.conf,修改爲如下

找到server{}虛擬主機,修改location如下
    server {
		listen       80;
		server_name  www.oldchouhuo.com;
		#charset koi8-r;
		#access_log  logs/host.access.log  main;
		#access_log  "pipe:rollback logs/host.access_log interval=1d baknum=7 maxsize=2G"  main;

		location / {
			#    root   /opt/alex/;
			#   index  index.html index.htm;
			
			#實現反向代理的功能參數
			#實現反向代理的功能參數
			#實現反向代理的功能參數
			proxy_pass http://192.168.182.131;                                                         
		}
	}






6.nginx負載均衡

	環境準備
	1臺負載均衡服務器,nginx而已     192.168.182.130 是負載均衡服務器

	2臺資源服務器  
	192.168.182.131  資源服務器1  ,返回alex的頁面 
	192.168.182.132  資源服務器2 ,返回武大郎的頁面
	
	
	






1.準備好2臺資源服務器,本應該提供一樣的數據,進行負載均衡,實驗目的,看到不同的頁面,所以準備不同的頁面數據
	192.168.182.131  資源服務器1  ,返回alex的頁面 
	192.168.182.132  資源服務器2 ,返回武大郎的頁面

2.準備負載均衡服務器,配置如下
	在nginx配置文件中,添加如下配置,定義負載均衡池,寫入後端項目地址
	默認輪詢方式
	upstream mys21django  {
		server 192.168.182.131;
		server 192.168.182.132;                                                                    
	}
	
	#權重方式
		upstream mys21django  {
		server 192.168.182.131	weight=4;
		server 192.168.182.132   weight=1;                                                                    
	}

	#ip哈希方式,根據用戶的來源ip計算出哈希值,永遠只指派給一個服務器去解析
	#ip哈希不得與權重共同使用 
	#ip哈希不得與權重共同使用 
		upstream mys21django  {
			server 192.168.182.131	;
			server 192.168.182.132   ;         
			ip_hash;
	}
	
	
	
	#虛擬主機配置如下
    server {
        listen       80;
        server_name  www.oldchouhuo.com;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        #access_log  "pipe:rollback logs/host.access_log interval=1d baknum=7 maxsize=2G"  main;
        location / {
        #    root   /opt/alex/;
         #   index  index.html index.htm;
		#請求轉發給負載均衡池
        proxy_pass http://mys21django;
        }
}






項目部署

nginx + uwsgi + django + mysql 



1.後端搞起

1.上傳crm項目到linux服務器
2.安裝uwsgi命令,這是python的一個模塊
激活一個虛擬環境去使用

virtualenv --no-site-packages --python=python3   s21uwsgi
pip3 install -i https://pypi.douban.com/simple  uwsgi 

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple django==1.11.1
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple pymysql 
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple django-multiselectfield



2.使用uwsgi的命令,參數形式啓動  crm項目

	以往的python3 manage.py runserver 調用wsgiref去啓動django,性能很低,單進程web
	使用uwsgi啓動django,可以支持併發,多進程,以及日誌設置,多種功能
	
	#必須在django項目,第一層敲這個命令
	
	uwsgi --http :8000 --module mysite.wsgi
		--http 指定是http協議,去啓動項目
		--module  指定django目錄下的wsgi文件


	#uwsgi支持的熱加載命令
	uwsgi --http :9000 --module Aida_crm.wsgi   --py-autoreload=1 



3.uwsgi以配置文件的形式啓動 ,就是把你的啓動參數,寫入到一個文件中,然後,執行這個文件即可

配置文件名字可以叫做 uwsgi.ini ,內容如下,這個文件是手動生成的
touch uwsgi.ini ,寫入如下內容

[uwsgi]
# Django-related settings
# the base directory (full path)
#填入項目的絕對路徑 ,項目的第一層路徑
chdir           = /opt/s21/Aida_crm

# Django's wsgi file
#指定第二層項目下的wsgi文件
module          = Aida_crm.wsgi

# the virtualenv (full path)
#找到虛擬環境的絕對路徑
home            = /opt/s21/s21uwsgi


# process-related settings
# master
master          = true

# 以cpu核數來填寫,uwsgi的工作進程數
processes       = 2


# the socket (use the full path to be safe
#這是以uwsgi_socket協議啓動的項目,無法再去通過瀏覽器訪問,必須通過nginx以uwsgi協議去反向代理
#這是以uwsgi_socket協議啓動的項目,無法再去通過瀏覽器訪問,必須通過nginx以uwsgi協議去反向代理
#這是以uwsgi_socket協議啓動的項目,無法再去通過瀏覽器訪問,必須通過nginx以uwsgi協議去反向代理
socket          = 0.0.0.0:8000

#也可以使用http協議去啓動(僅用作調試使用)
#也可以使用http協議去啓動(僅用作調試使用)
#也可以使用http協議去啓動(僅用作調試使用)
#http = 0.0.0.0:9000


# ... with appropriate permissions - may be needed
# chmod-socket    = 664
# clear environment on exit
vacuum          = true

#後臺運行參數,將uwsgi運行在後臺,並且將django日誌輸出到uwsgi.log中
daemonize = uwsgi.log 


4.指定配置文件啓動django

uwsgi --ini  uwsgi.ini 


nginx的配置,反向代理uwsgi
1.修改nginx.conf如下

    server {
        listen       80;
        server_name  www.oldchouhuo.com;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        #access_log  "pipe:rollback logs/host.access_log interval=1d baknum=7 maxsize=2G"  main;
        location / {
        #轉發請求的方式配置在這裏
        #轉發請求的方式配置在這裏
        #轉發請求的方式配置在這裏
			include    uwsgi_params;
			uwsgi_pass 0.0.0.0:8000;
        }
		}  

2.重新加載nginx,訪問nginx,查看是否反向代理

	去瀏覽器訪問nginx的地址,查看能否訪問到crm的內容
	

3.收集crm的所有靜態文件,丟給nginx去解析

對django的settings.py配置修改如下

	添加如下參數
	STATIC_ROOT='/opt/s21static'                                                                                                                        

	STATIC_URL = '/static/'
	STATICFILES_DIRS = [
		os.path.join(BASE_DIR, 'static')
	]

	執行命令,收集django的所有靜態文件,系統會自動創建'/opt/s21static'  這個文件夾
	python3 manage.py collectstatic

4,配置nginx,找到crm的這些靜態資源
			location / {
				include    uwsgi_params;
				uwsgi_pass 0.0.0.0:8000;
			}
        #添加一個location,針對nginx的url進行匹配處理
        #當請求時 www.oldchouhuo.com/static/.....  這樣的url的時候,nginx進行別名修改,去/opt/s21static底下去尋找資源文件
        #                                                                                                                            
			location  /static {
				alias /opt/s21static;
}


5.此時再次訪問網站,查看是否處理了靜態資源
www.oldchouhuo.com 




	

前後端分離的部署筆記

1.後端部署
uwsgi + drf + redis + mysql 


2.準備後端代碼
wget https://files.cnblogs.com/files/pyyu/luffy_boy.zip

3.創建且激活新的虛擬環境
virtualenv --no-site-packages --python=python3   s21luffy


4.解決模塊依賴問題,嘗試調試啓動drf後臺
	[root@web02 opt]# cat requirements.txt
	certifi==2018.11.29
	chardet==3.0.4
	crypto==1.4.1
	Django==2.1.4
	django-redis==4.10.0
	django-rest-framework==0.1.0
	djangorestframework==3.9.0
	idna==2.8
	Naked==0.1.31
	pycrypto==2.6.1
	pytz==2018.7
	PyYAML==3.13
	redis==3.0.1
	requests==2.21.0
	shellescape==3.4.1
	urllib3==1.24.1
	uWSGI==2.0.17.1
	
	
	pip3 -i install https://pypi.douban.com/simple -r requirements.txt    


5.使用uwsgi,啓動drf後臺

touch uwsgi.ini 

[uwsgi]
chdir           = /opt/s21vue+drf/luffy_boy

module          = luffy_boy.wsgi
home            = /opt/s21vue+drf/s21luffy
master          = true
processes       = 2
socket          = 0.0.0.0:8888
vacuum          = true
daemonize = uwsgi.log 




2.前端部署
下載前端vue代碼
wget https://files.cnblogs.com/files/pyyu/07-luffy_project_01.zip


vue+nginx的端口 81端口,這是第一個虛擬主機

nginx反向代理端口,    9500 ,  這是第二個虛擬主機

drf的後臺端口  8888 




訪問步驟:

第一步: 192.168.182.130:81  查看到路飛的首頁內容,是vue的靜態頁面
 
第二部:   當我點擊  課程列表的時候,vue向後臺發送請求了,發送的地址應該是 192.168.182.130:9500

第三部:此時  nginx的反向代理,轉發請求給了 drf的後臺 8888


3.修改vue的請求發送地址,重要!!!!
3.修改vue的請求發送地址,重要!!!!
3.修改vue的請求發送地址,重要!!!!
3.修改vue的請求發送地址,重要!!!!

修改vue請求地址,向服務器的ip地址發送請求

sed -i  "s/127.0.0.1:8000/192.168.182.130:9500/g"  src/restful/api.js 

	參數解釋:
	
		-i 將替換結果寫入到文件
		
		"s/你想替換的內容/替換之後的內容/g"      s是替換模式  g是全局替換 
		
	
4.配置nodejs的解釋器環境,打包編譯vue代碼,生成靜態文件夾dist

	#這裏的node代碼包,是二進制包,已經編譯好了,可以直接使用
	wget https://nodejs.org/download/release/v8.6.0/node-v8.6.0-linux-x64.tar.gz

	#解壓縮node的代碼包
	tar -zxvf node-v8.6.0-linux-x64.tar.gz 

	#配置PATH環境變量
	PATH='/opt/s21/python367/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/s21/tngx/sbin:/opt/s21vue+drf/node-v8.6.0-linux-x64/bin' 

	#檢查node是否可用

	[root@wupeiqi bin]#node -v
	v8.6.0
	[root@wupeiqi bin]#npm -v
	5.3.0

5.進入vue代碼目錄,開始編譯代碼,生成dist靜態文件夾

	cd /opt/s21vue+drf/07-luffy_project_01/

	#開始安裝這個項目所有需要的node模塊,默認去讀取 package.json
	npm install 

	#開始編譯vue代碼,生成dist靜態網頁文件夾,丟給nginx 
	npm run build 


6.在正確生成dist之後,配置nginx 



7.nginx配置如下

#這裏配置和luffy學成有關的代碼
#這個是nginx+vue的虛擬主機
server {
        listen 81;
        server_name localhost;
        error_page  404              /404.html;
        #請求來到這裏時,返回vue的頁面
        location / {
                root   /opt/s21vue+drf/07-luffy_project_01/dist;
                index index.html;
				try_files $uri $uri/ /index.html;
        }
}

#這個是nginx反向代理,轉發vue請求給drf的虛擬主機
	server {
		listen 9500;
		server_name localhost;
		location / {
				include    uwsgi_params;
		uwsgi_pass 0.0.0.0:8888;
		}

	}    



8.此時訪問vue地址即可,看到路飛頁面,且可以看到課程列表的數據,可以添加linux,和python的課程,到購物車中,整個部署過程結束





	



 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章