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.pswp.cn/news/37813.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/37813.shtml
英文地址,請注明出處:http://en.pswp.cn/news/37813.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

解決生成式AI落地之困,亞馬遜云科技提供完整解決方案

生成式AI技術無疑是當前最大的時代想象力之一。 資本、創業者、普通人都在涌入生成式AI里去一探究竟:“百模大戰”連夜打響,融資規模連創新高,各種消費類產品概念不斷涌現……根據Bloomberg Intelligence 的報告,2022年生成式AI 市…

文件操作/IO

文件 文件是一種在硬盤上存儲數據的方式,操作系統幫我們把硬盤的一些細節都封裝起來了,程序員只需要了解文件相關的接口即可,相當于操作文件就是間接的操作硬盤了 硬盤用來存儲數據,和內存相比硬盤的存儲空間更大,訪問…

使用FTP文件傳輸協議的潛在風險

數據(事實,數字,價值)是當今業務運行的核心要素。但是,如果數據沒有得到有效的存儲和傳輸,它們就會成為阻礙業務發展的障礙。如果企業不能及時地把數據送到合適的地方,就會造成嚴重的經濟損失。…

【skynet】skynet 入門代碼

寫在前面 本文將從零開始,寫第一個 skynet 程序 HelloWorld 。通過 HelloWorld 可以熟悉 skynet 的運作方式,和了解其 api 。 文章目錄 寫在前面準備工作編寫代碼運行結果 準備工作 首先要有一個編譯好,而且工作正常的 skynet 。 編寫代碼…

【Linux】Shell腳本之流程控制語句 if判斷、for循環、while循環、case循環判斷 + 實戰詳解[?建議收藏!!?]

👨?🎓博主簡介 🏅云計算領域優質創作者 ??🏅華為云開發者社區專家博主 ??🏅阿里云開發者社區專家博主 💊交流社區:運維交流社區 歡迎大家的加入! 🐋 希望大家多多支…

.bit域名調研

.bit域名研究 問題: .bit域名和ENS域名的相同點?不同點?有什么關系? .bit的定義 .bit 是基于區塊鏈的,開源的,跨鏈去中心化賬戶系統.bit 提供了以 .bit 為后綴的全局唯一的命名體系,可用于加密…

安全第二次

一&#xff0c;iframe <iframe>標簽用于在網頁里面嵌入其他網頁。 1&#xff0c;sandbox屬性 如果嵌入的網頁是其他網站的頁面&#xff0c;因不了解對方會執行什么操作&#xff0c;因此就存在安全風險。為了限制<iframe>的風險&#xff0c;HTML 提供了sandb…

分布式應用:Zabbix監控MariaDB

目錄 一、理論 1.Zabbix監控MariaDB 二、實驗 1.Zabbix監控MariaDB 一、理論 1.Zabbix監控MariaDB &#xff08;1&#xff09;環境 zabbix服務端&#xff1a;192.168.204.214 zabbix客戶端&#xff1a;192.168.204.215 &#xff08;2&#xff09;MareaDB安裝 安裝 za…

做海外游戲推廣有哪些條件?

做海外游戲推廣需要充分準備和一系列條件的支持。以下是一些關鍵條件&#xff1a; 市場調研和策略制定&#xff1a;了解目標市場的文化、玩家偏好、競爭格局等是必要的。根據調研結果制定適合的推廣策略。 本地化&#xff1a;將游戲內容、界面、語言、貨幣等進行本地化&#…

使用ip2region獲取客戶端地區

目錄 從gitee拉取ip2region.xdb資源文件 寫測試類 注意要寫對資源路徑 本地測試結果 ?編輯 遠端測試結果 從gitee拉取ip2region.xdb資源文件 git clone https://gitee.com/lionsoul/ip2region.git 將xdb放入resources資源文件夾 引入依賴 <dependency><groupId&…

由淺入深C系列五:使用libcurl進行基于http get/post模式的C語言交互應用開發

使用libcurl進行基于http get/post模式的C語言交互應用開發 簡介環境準備在線資源示例代碼測試調用運行結果 簡介 大多數在linux下的開發者&#xff0c;都會用到curl這個命令行工具。對于進行restful api的測試等&#xff0c;非常方便。其實&#xff0c;這個工具還提供了一個C…

Python中單引號、雙引號和三引號的區別

① 單引號和雙引號主要用來表示字符串 # 單引號 astr = Python print(type(astr)) # <class str># 雙引號"" bstr = "Python" print(type(bstr)) # <class str> str1 = I\m a big fan of Python. print(str1) # Im a big fan of Python.s…

[HDLBits] Exams/m2014 q4d

Implement the following circuit: module top_module (input clk,input in, output out);always(posedge clk) beginout<out^in;end endmodule直接寫out^in就行

Vue 使用 vite 創建項目

vite 是新一代前端構建工具&#xff0c;和 webpack 類似。 vite 的啟動速度更快。在開發環境中&#xff0c;不需要打包就可以直接運行。 vite 的更新速度更快。當修改內容后&#xff0c;不需要刷新瀏覽器&#xff0c;頁面就會實時更新。 vite 完全是按需編譯。它只會編譯需要…

【考研數學】高等數學第三模塊——積分學 | Part II 定積分(反常積分及定積分應用)

文章目錄 前言三、廣義積分3.1 斂散性概念&#xff08;一&#xff09;積分區間為無限的廣義積分&#xff08;二&#xff09;積分區間有限但存在無窮間斷點 3.2 斂散性判別法 四、定積分應用寫在最后 前言 承接前文&#xff0c;梳理完定積分的定義及性質后&#xff0c;我們進入…

企業網盤 vs 傳統存儲設備:為何云存儲成為首選?

企業網盤的出現為企業提供了新的存儲方式&#xff0c;相較于傳統的存儲設備&#xff0c;為何越來越多的企業選擇了云存儲呢&#xff1f; 一、存儲成本 在企業數據存儲方面&#xff0c;成本是企業重要的考量因素。企業網盤是基于云存儲技術的存儲工具&#xff0c;因此它比傳統的…

基于DBN的偽測量配電網狀態估計,DBN的詳細原理

目錄 背影 DBN神經網絡的原理 DBN神經網絡的定義 受限玻爾茲曼機(RBM) DBN的偽測量配電網狀態估計 基本結構 主要參數 數據 MATALB代碼 結果圖 展望 背影 DBN是一種深度學習神經網絡,擁有提取特征,非監督學習的能力,是一種非常好的分類算法,本文將DBN算法偽測量配電網…

Netty:ByteBuf的資源釋放方法

說明 io.netty.buffer.ByteBuf實現了io.netty.util.ReferenceCounted接口&#xff0c;需要顯式釋放。當ByteBuf被實例化后&#xff0c;它的引用計數是1。 調用ByteBuf對象的release方法釋放&#xff1a; ByteBuf的release()方法使引用計數減少1。只有當執行以后引用計數減少…

OpenZFS 2.2 發布 RC3,支持 Linux 6.4

導讀之前的 OpenZFS 2.2 候選版本已致力于實現與 Linux 6.4 內核的兼容性&#xff0c;而在 2.2-rc3 中&#xff0c;Linux 6.4 支持的元跟蹤器已標記為已完成。 OpenZFS 2.2 發布了第 3 個 RC 版本。 之前的 OpenZFS 2.2 候選版本已致力于實現與 Linux 6.4 內核的兼容性&#x…

Vue3 引用第三方Swiper內容觸摸滑動簡單應用

去官網查看更多教程→&#xff1a;Swiper官網 → 點擊教程在vue中使用Swiper→ 在Vue中使用Swiper cd 到項目 安裝Swiper&#xff1a; cnpm install --save swiper 安裝指定版本 cnpm install --save swiper8.1.6 9.4.1 10.1.0…