首頁>技術>

前言nginx作為一款高效能的伺服器,用途非常多,除了可以做後端伺服器的代理,負載均衡之外,還有一個用途就是做靜態資源的快取伺服器,比如在前後端分離的專案中,為了加速前端頁面的響應速度,我們可以將前端的相關資源,例如html,js,css或者圖片等放到nginx指定的目錄下,訪問的時候只需要通過IP加路徑就可以實現高效快速的訪問,

1、基礎環境

1.機器規劃

hostnameiproleweb0110.0.0.7flask程序(埠5000)lb0110.0.0.5提供Nginx靜態資源訪問和反向代理

2.我自己寫了一個基於flask_restful的flask小專案,目錄結構為

[root@web01 ~]# tree flask-demoflask-demo├── app │ ├── api   # 介面檔案│ │ ├── base.py│ │ ├── home.py│ │ └── web_html.py│ ├── __init__.py│ ├── libs     # 工具函式│ │ ├── commons.py│ │ └── const.py│ └── static   # 靜態資源│     ├── html│     │ ├── home.html│     │ └── index.html│     ├── img│     │ └── t1.jpg│     └── js│         └── jquery-3.4.1.min.js├── flask_manage.sh  # flask啟動指令碼├── manage.py  └── settings.py # flask配置檔案
127.0.0.1:5000/index.html127.0.0.1:5000/home.html
python3.6pop3// 模組(版本影響不大)flaskflask_sqlalchemyflask_restfulflask_sessionflask_wtfflask_scriptflask_migrate

2、部署Flask應用首先,我們需要在web01中部署Flask應用,然後把flask-demo目錄下的/static目錄給刪除,最後在用flask-demo自帶的啟動指令碼來啟動flask程序

1.將flask-demo移動至/data目錄下

$ mkdir /data$ mv flask-demo /data/

2.刪除或移動/static/靜態目錄

mv  flask-demo/app/static/ /tmp/

3.啟動flask程序(一定要先進到flask-demo目錄)

$ cd /data/flask-demo$ sh flask_manage.sh  start

4.訪問當前機器5000埠的兩個url,我們會發現這兩個靜態資源是不存在的

3、部署Nginx靜態資源代理1.安裝nginx

$ yum install nginx

2.將flask-demo壓縮包上傳到lb01並解壓,然後將/statis靜態資源移動到/data目錄

$ mkdir /data$ tar xf flask-demo.tar.gz$ cp -r flask-demo/app/static/ /data/// 檢視靜態資原始檔/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代理

另外還有一些關於c++ Linux後臺伺服器開發的一些知識點分享:Linux,Nginx,MySQL,Redis,P2P,K8S,Docker,TCP/IP,協程,DPDK,webrtc,音視訊等等視訊。

附上一份c++ Linux後臺伺服器開發 學習課程大綱給大家

最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • vue2-elm開源高仿餓了麼APP具有45 個頁面