前言
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,音视频等等视频。
喜欢的朋友可以后台私信【1】获取学习视频
附上一份c++ Linux后台服务器开发 学习课程大纲给大家
推荐阅读:苹果7p和8的区别
-
家有龙凤胎,性教育真的太难做了
下面的问题谁能答上一半,我就给他跪了性教育在我们家并不是一个难以启齿的问题,问题在于,孩子们提的问题太难回答了!这些年,我都不知道自己扶了多少次墙、出了多少回糗...
2020-02-20 -
王者荣耀2020世冠总决赛落地北京,这款甄姬
庄周镇楼王者荣耀的游戏粉们,一条好消息今天传来:“电竞北京2020计划”宣布王者荣耀世界冠军杯总决赛落地首都。这次北京推动王者世冠的举办,将推动电竞产业的发展,...
2020-02-20 -
想见你,想开工,想对同事肉麻表白,“好久不见
往年这个时候,我们应该在工作岗位埋头苦干了。今年,因为众所周知的原因,大家只能在家里蹲,开发花艺、厨艺,据说,部分地区的高筋面粉和酵母都告急了。大家想干活儿的心...
2020-02-20 -
可口可乐的柠檬味可乐冰沙亮相,3 月底将在日
天气还没转暖,但面向夏天的产品已经开始走起来了,2 月 18 日,可口可乐日本公司发布了柠檬味的可乐冰沙,它会在3 月 30 日开始在全日本发售,具体渠道包括超...
2020-02-20 -
《健身环大冒险》价格飙升,却暴露了任天堂的致
去年9月,任天堂发售了旗下一款Switch的角色扮演游戏《健身环大冒险》(Ring Fit Adventure),这是一款主打健身的游戏,玩家可将NS上的Joy...
2020-02-20 -
京东数科打造“高危人群疫情态势感知系统”
在此次抗击疫情中,“大数据+网格化”方式派上大用场,数字科技在推进社会治理现代化中正在发挥越来越重要的作用。为助力社会治理现代化,京东数字科技集团(以下简称京东...
2020-02-20