前言
nginx作為一款高性能的服務(wù)器,用途非常多,除了可以做后端服務(wù)器的代理,負(fù)載均衡之外,還有一個用途就是做靜態(tài)資源的緩存服務(wù)器
,比如在前后端分離
的項(xiàng)目中,為了加速前端頁面的響應(yīng)速度,我們可以將前端的相關(guān)資源,例如html,js,css或者圖片等放到nginx指定的目錄下,訪問的時候只需要通過IP加路徑就可以實(shí)現(xiàn)高效快速的訪問,
1、基礎(chǔ)環(huán)境
1.機(jī)器規(guī)劃
hostname | ip | role |
---|---|---|
web01 | 10.0.0.7 | flask進(jìn)程(端口5000) |
lb01 | 10.0.0.5 | 提供Nginx靜態(tài)資源訪問和反向代理 |
2.我自己寫了一個基于flask_restful的flask小項(xiàng)目,目錄結(jié)構(gòu)為
flask-demo:https://pan.baidu.com/s/1PMx-ULDbQ5FEhlfZchWH9Q
[root@web01 ~]# tree flask-demo
flask-demo
├── app
│?? ├── api # 接口文件
│?? │?? ├── base.py
│?? │?? ├── home.py
│?? │?? └── web_html.py
│?? ├── __init__.py
│?? ├── libs # 工具函數(shù)
│?? │?? ├── commons.py
│?? │?? └── const.py
│?? └── static # 靜態(tài)資源
│?? ├── html
│?? │?? ├── home.html
│?? │?? └── index.html
│?? ├── img
│?? │?? └── t1.jpg
│?? └── js
│?? └── jquery-3.4.1.min.js
├── flask_manage.sh # flask啟動腳本
├── manage.py
└── settings.py # flask配置文件
可訪問的Url:
127.0.0.1:5000/index.html
127.0.0.1:5000/home.html
安裝python版本以及模塊
python3.6
pop3
// 模塊(版本影響不大)
flask
flask_sqlalchemy
flask_restful
flask_session
flask_wtf
flask_script
flask_migrate
2、部署Flask應(yīng)用
首先,我們需要在web01中部署Flask應(yīng)用,然后把flask-demo目錄下的/static目錄給刪除,最后在用flask-demo自帶的啟動腳本來啟動flask進(jìn)程
1.將flask-demo移動至/data
目錄下
$ mkdir /data
$ mv flask-demo /data/
2.刪除或移動/static/
靜態(tài)目錄
mv flask-demo/app/static/ /tmp/
3.啟動flask進(jìn)程(一定要先進(jìn)到flask-demo目錄)
$ cd /data/flask-demo
$ sh flask_manage.sh start
4.訪問當(dāng)前機(jī)器5000端口的兩個url,我們會發(fā)現(xiàn)這兩個靜態(tài)資源是不存在的
3、部署Nginx靜態(tài)資源代理
1.安裝nginx
$ yum install nginx
2.將flask-demo
壓縮包上傳到lb01并解壓,然后將/statis
靜態(tài)資源移動到/data
目錄
$ mkdir /data
$ tar xf flask-demo.tar.gz
$ cp -r flask-demo/app/static/ /data/
// 查看靜態(tài)資源文件
/data/
└── static
├── html
│?? ├── home.html
│?? └── index.html
├── img
│?? └── t1.jpg
└── js
└── jquery-3.4.1.min.js
3.nginx配置文件
user www;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/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 /var/log/nginx/access.log main;
sendfile on;
keepalive_timeout 65;
upstream blog_server_pools {
ip_hash;
server 10.0.0.7:5000 weight=1;
}
server {
listen 80;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header host $host;
location /api {
proxy_pass http://blog_server_pools;
}
location / {
alias /data/static/html/;
}
location /static {
alias '/data/static';
}
}
}
啟動nginx
$ nginx
4.瀏覽器訪問lb01代理
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
新聞標(biāo)題:Nginx實(shí)現(xiàn)靜態(tài)資源-創(chuàng)新互聯(lián)
文章源于:http://www.rwnh.cn/article42/ehdhc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、網(wǎng)站營銷、網(wǎng)站導(dǎo)航、ChatGPT、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站內(nèi)鏈
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容