Nginx 实现静态资源
发表于:2024-11-11 作者:千家信息网编辑
千家信息网最后更新 2024年11月11日,前言nginx作为一款高性能的服务器,用途非常多,除了可以做后端服务器的代理,负载均衡之外,还有一个用途就是做静态资源的缓存服务器,比如在前后端分离的项目中,为了加速前端页面的响应速度,我们可以将前端
千家信息网最后更新 2024年11月11日Nginx 实现静态资源
前言
nginx作为一款高性能的服务器,用途非常多,除了可以做后端服务器的代理,负载均衡之外,还有一个用途就是做静态资源的缓存服务器
,比如在前后端分离
的项目中,为了加速前端页面的响应速度,我们可以将前端的相关资源,例如html,js,css或者图片等放到nginx指定的目录下,访问的时候只需要通过IP加路径就可以实现高效快速的访问,
1、基础环境
1.机器规划
hostname | ip | role |
---|---|---|
web01 | 10.0.0.7 | flask进程(端口5000) |
lb01 | 10.0.0.5 | 提供Nginx静态资源访问和反向代理 |
2.我自己写了一个基于flask_restful的flask小项目,目录结构为
flask-demo:https://pan.baidu.com/s/1PMx-ULDbQ5FEhlfZchWH9Q
[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配置文件
可访问的Url:
127.0.0.1:5000/index.html127.0.0.1:5000/home.html
安装python版本以及模块
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代理
资源
静态
目录
文件
代理
服务器
进程
服务
移动
两个
前端
机器
模块
版本
用途
端口
脚本
项目
应用
配置
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
筛选删除重复的数据库
崇明区工商软件开发包括什么
apache 下载服务器
学习网络安全需要英语吗
视觉机器组态软件开发
银行网络安全法出台
聚石塔 服务器
湖北统一软件开发设施
软件开发行业任务管理软件
数据库恢复技术无关的是什么
支付宝网络技术薪资
网络安全和家庭教育读后感
无人驾驶 网络安全
云南app软件开发
四川博通达网络技术有限公司
优炫数据库邀请函
网络技术服务中心招聘
梳妆台效果图软件开发
创业手机软件开发的目标
达梦数据库如何修改编码
软件开发的组织
无锡智能化软件开发平台
网络管理与网络安全
游戏软件开发初中生
嵌入式单片机软件开发工程师求职
临沂服务器管理系统
黑板报关于网络安全的图片和文字
高考数据库网页
wind数据库怎么查薪酬吗
服务器挖矿简单的说法