brew+nginx配置静态文件服务器

背景

一下子闲下来了,了解的我的人都知道我闲不下来。于是,我在思考COS之后,决定自己整一个本地的OSS,实现静态文件的访问。那么,首屈一指的就是我很熟的nginx。也算是个小复习吧,复习一下nginx代理静态文件。

nginx的使用场景

  • 反向代理

作为中间层的服务器,将来自客户端的请求转发到对应的后端服务器上

  • 动静分离

动:指的是后端处理过的数据;静:静态的资源,如图片、css、js代码。nginx可以直接提供静态资源访问,动态的则直接转发到对应的后端服务

  • 负载均衡
http {upstream backend {server backend1.example.com;server backend2.example.com;server backend3.example.com;}server {listen 80;location / {proxy_pass http://backend;}}
}

以上配置的就是轮询的负载均衡算法还有随机加权轮训ip hash最小连接数基于URI的负载均衡等方式,具体问题具体分析,其实很好的做好了后端之前的负载工作。对,还有一个神器keep alive,感兴趣的可以了解一下,nginx+keep alive, 绝配。

  • 静态文件服务

nginx其实本身就是应对高并发的场景设计的,用它代理很多静态的资源、视频、图片等,都是很好的选择。

mac上的配置

安装

brew install nginx

启动

(base) ~|⇒ brew services start nginx
==> Successfully started `nginx` (label: homebrew.mxcl.nginx)

启动了就是这个样子,就可以看到默认的访问页面。

nginx的配置文件也是超级不好找的,不过适应了就好,因为homebrew已经提前帮我们规划好了。

# 配置文件
/opt/homebrew/etc/nginx

nginx的默认的配置文件都在这里:

(base) nginx|stable ⇒ ls
fastcgi.conf           fastcgi_params.default mime.types             nginx.conf.default     scgi_params.default    win-utf
fastcgi.conf.default   koi-utf                mime.types.default     nginx.conf_cpy         uwsgi_params
fastcgi_params         koi-win                nginx.conf             scgi_params            uwsgi_params.default

重头戏

说了这么久,我要的静态资源服务器呢?安排上。在开始之前,我们需要做一下的准备:

  1. 开放的端口号是什么,我这里就8080了,免得以后别的服务端口占用了;
  2. 挂载的路径 我就选~/imgs吧,放了一些我的typora的笔记截图

好的,现在资源规划完成了,我们开始整。

配置的过程

cp nginx.conf nginx.conf_bck
vim nginx.conf

我就直接扔出来具体的配置了,每个配置都有详细的解释:

     location /downloads {#转到的Nginx文件目录alias /xxx/files;#打开目录浏览功能autoindex on;#默认为on,显示出文件的确切大小,单位是bytes#显示出文件的大概大小,单位是kB或者MB或者GBautoindex_exact_size off;#默认为off,显示的文件时间为GMT时间。#改为on后,显示的文件时间为文件的服务器时间autoindex_localtime on;#让浏览器不保存临时文件add_header Cache-Control no-store;#避免中文乱码charset utf-8,gbk;#希望请求文件是下载而不是显示内容#add_header Content-Disposition attachment; }

nginx重新加载配置:

/opt/homebrew/bin/nginx -s reload

访问地址:http://127.0.0.1:8080/downloads 即可看到效果:

点击文件就可以实现类似于文件预览的效果。

怎么样子,是不是很好用!直接一个nice

服务关闭

作为节省资源型的猿,我喜欢不用的时候关闭软件,来看看搭载了brew的包管理器如何关闭服务。

(base) nginx|stable ⇒ brew services stop nginx
Stopping `nginx`... (might take a while)
==> Successfully stopped `nginx` (label: homebrew.mxcl.nginx)

检查一下:

ps -ef | grep nginx | grep -v grep

OK, 以上就是brew nginx配置静态资源服务器的全部过程了。伙伴们也记得关注,这样就不会错过很多干货了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/67456.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Gitee+Jenkins(docker版)自动推送并部署Springboot项目到远程服务器

如果要参考gitlab配置请参考GitlabWebhook自动推送并更新Springboot项目 Gitlab的配置部分 环境介绍 Jenkins服务器(Centos7.6): docker安装的jenkins,参考Jenkins(docker安装)部署Springboot项目JDK1.8Maven3.6.3 注意docker安装的jenkins,而且是较新的版本,所以jenkins容器…

探讨uniapp的网络通信问题

uni-app 中有很多原生的 API,其中我们经常会用到的肯定有:uni.request(OBJECT) method 有效值 注意:method有效值必须大写,每个平台支持的method有效值不同,详细见下表。 success 返回参数说明 data 数据说明 最终…

第一个ArkTS项目实践-鸿蒙ArkTS

第一个ArkTS项目实践-ArkTS 第一个ArkTS项目实践-ArkTS自定义组件的组成配置属性与布局配置属性布局 改变组件状态循环渲染列表数据代码ToDoItem组件ToDoList页面 效果参考资料 第一个ArkTS项目实践-ArkTS 本篇文章是官网上视频对ArkTS开发实践的第一个视频,主要是引…

鸿蒙剥离 AOSP 不兼容 Android 热门问题汇总,不吹不黑不吵

上周发了一篇 《鸿蒙终于不套壳了?纯血 HarmonyOS NEXT 即将到来》的相关资讯,没想到大家「讨(fa)论(xie)」的热情很高,莫名蹭了一波流量,虽然流量对我来说也没什么用,但…

点击base64编码过的图片在另一个页面显示

开始的代码是这样的,新开一个窗口显示经过base64编码后的图片,但是url太长了显示失败。 openImage(imgSrc) {window.open(imgSrc, _blank); }, 解决方法:这段代码接收一个Base64编码的图像数据,把它转换为一个Blob对象。 Blob&…

warning: remember to run ‘libtool --finish /usr/local/1/php-7.4.29/libs

ubuntu上php7.4.33编译安装完成后警告报错,如下所示 # /usr/local/apache2/apr/build-1/libtool --finish /usr/local/soft/php-7.4.33/libs # vim /etc/ld.so.conf.d/local.conf /usr/local/lib /usr/lib64 # ldconfig 或者安装依赖服务,重新编译 #…

Unity3D高级编程:主程手记学习1

第一章 软件架构 Untiy 分层设计 分层后再分治

使用基于jvm-sandbox的对三层嵌套类型的改造

使用基于jvm-sandbox的对三层嵌套类型的改造 问题背景 先简单介绍下基于jvm-sandbox的imock工具,是Java方法级别的mock,操作就是监听指定方法,返回指定的mock内容。 jvm-sandbox 利用字节码操作和自定义类加载器的技术,将原始方法…

企业直播MR虚拟直播(MR混合现实直播技术)视频介绍

到底什么是企业直播MR虚拟直播(MR混合现实直播技术)? 企业直播MR虚拟直播新玩法(MR混合现实直播技术) 我的文章推荐: [视频图文] 线上研讨会是什么,企业对内对外培训可以用线上研讨会吗&#x…

Python学习笔记_基础篇(三)_数据类型之列表

一.基本数据类型 整数:int 字符串:str(注:\t等于一个tab键) 布尔值: bool 列表:list (元素的集合) 列表用[] 元祖:tuple 元祖用() 字典:dict 注&a…

【量化课程】08_2.深度学习量化策略基础实战

文章目录 1. 深度学习简介2. 常用深度学习模型架构2.1 LSTM 介绍2.2 LSTM在股票预测中的应用 3. 模块分类3.1 卷积层3.2 池化层3.3 全连接层3.4 Dropout层 4. 深度学习模型构建5. 策略实现 1. 深度学习简介 深度学习是模拟人脑进行分析学习的神经网络。 2. 常用深度学习模型架…

Python语言入门简介

一、Python的历史 关键点: Python是一种用途广泛、解释性、面向对象的程序设计语言。 Python是新西兰的Guido van Rossum在1990 年创建的,它以英国流行喜剧“Monty Python的飞行马戏团”命名。van Rossum将Python开发作为一个嗜好,Python 因其简单、简洁…