Centos7部署nginx環境
安裝依賴包
命令:yum install gcc-c++
yum
install -y pcre pcre-devel
yum
install -y zlib zlib-devel
yum
install -y openssl openssl-devel
-
yum下載nginx並安裝
命令:yum install -y nginx nginx-devel
-
啟動nginx服務,服務默認端口是80
命令:systemctl start nginx
-
測試是否成功
訪問本機的80接口
命令:curl:127.0.0.1:80
返回nginx主頁的html代碼說明安裝成功
Centos7部署uwsgi環境,並使用uwsgi運行django項目
-
創建django項目
命令:django-admin startproject mysite 會在當前目錄下創建mysite目錄
進入mysite目錄,創建項目。
命令: (python3的在系統中的環境變量名) python3 manage.py startapp CompanyTemplate 會在mysite目錄下創建CompanyTemplate項目
-
運行項目檢查項目是否能夠正常運行
在manage.py 文件夾下使用執行運行操作
命令:python3 manage.py runserver :8090
在使用端口前可以先查一下端口是否被占用
lsof -i :8090
-
使用pip3下載uwsgi
(pip3 pip3在系統中的環境變量) 命令:pip3 install uwsgi
-
添加環境變量
命令:ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi3
-
使用uwsgi運行django項目
(uwsgi3 uwsgi在系統中的環境變量)
命令:uwsgi3 --http :8091 --chdir /root/www/mysite --module mysite.wsgi
/root/www/mysite --mysite目錄的地址
mysite.wsgi --mysite指的是 /root/www/mysite/mysite 文件夾,wsgi指的是該文件夾下的wsgi.py文件
-
使用瀏覽器打開8091地址查看項目是否可以正常訪問
使用nginx代理訪問uwsgi
Nginx是一個Http和反向代理服務器
什么是反向代理服務器呢?
- 正向的就是由瀏覽器主動的想代理服務器發出請求,經代理服務器做出處理后再轉給目標服務器
- 反向的就是不管瀏覽器同不同意,請求都會經過代理服務器處理再發給目標服務器
這其中的區別就是必須經過Nginx反向代理服務器,這就有了使用Nginx的幾個好處:
- 安全:不管什么請求都要經過代理服務器,這樣就避免了外部程序直接攻擊web服務器
- 負載均衡:根據請求情況和服務器負載情況,將請求分配給不同的web服務器,保證服務器性能
- 提高web服務器的IO性能:這個我也沒看懂,總結來說就是請求從客戶端傳到web服務器是需要時間的,傳遞多長時間就會讓這個進程阻塞多長時間,而通過反向代理,就可以在反向代理這完整接受請求,然后再傳給web服務器,從而保證服務器性能,而且有的一些簡單的事情(比如靜態文件)可以直接由反向代理處理,不經過web服務器
-
創建uwsgi配置文件
創建文件 test.ini 文件
編寫文件內容配置參數有很多這里只簡單設置一下
-----------------------------------------------------------------------------------------------
#uwsgi.ini file
[uwsgi]
chdir=/root/www/mysite #項目位置
module=mysite.wsgi #wsgi.py文件所在位置
socket=127.0.0.1:8091 #限制只能通過本地訪問8091端口來訪問項目
----------------------------------------------------------------------------------------------------
重啟uwsgi服務
systemctl restart uwsgi
-
修改nginx的配置文件
nginx配置文件默認路徑為/etc/nginx/nginx.conf
修改配置信息
命令 vim /etc/nginx/nginx.conf
------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------
重啟nginx
命令:systemctl restart nginx
使用nginx代理獲取靜態文件
當訪問網站時靜態文件獲取不到頁面樣式報錯,比如: Django中使用admin后台管理框架
- 修改Django項目settings.py配置文件
設置靜態文件提取路徑
/root/www/mysite/ 為項目在服務器上部署的絕對路徑
- 將Django項目中的靜態文件分離出來
在manage.py文件所在路徑下執行分離
python3 manage.py collectstatic
- 修改Nginx服務配置文件,設置靜態文件獲取地址
命令:vim /etc/nginx/nginx.conf
- 重啟nginx服務
systemctl restart nginx