背景
一下子閑下來了,了解的我的人都知道我閑不下來。于是,我在思考COS之后,決定自己整一個(gè)本地的OSS,實(shí)現(xiàn)靜態(tài)文件的訪問。那么,首屈一指的就是我很熟的nginx
。也算是個(gè)小復(fù)習(xí)吧,復(fù)習(xí)一下nginx
代理靜態(tài)文件。
nginx的使用場(chǎng)景
- 反向代理
作為中間層的服務(wù)器,將來自客戶端的請(qǐng)求轉(zhuǎn)發(fā)到對(duì)應(yīng)的后端服務(wù)器上
- 動(dòng)靜分離
動(dòng):指的是后端處理過的數(shù)據(jù);靜:靜態(tài)的資源,如圖片、css、js代碼。nginx
可以直接提供靜態(tài)資源訪問,動(dòng)態(tài)的則直接轉(zhuǎn)發(fā)到對(duì)應(yīng)的后端服務(wù)
- 負(fù)載均衡
http {
upstream backend {
server backend1.example.com;
server backend2.example.com;
server backend3.example.com;
}
server {
listen 80;
location / {
proxy_pass http://backend;
}
}
}
以上配置的就是輪詢
的負(fù)載均衡算法還有隨機(jī)
、加權(quán)輪訓(xùn)
、ip hash
、最小連接數(shù)
、基于URI的負(fù)載均衡
等方式,具體問題具體分析,其實(shí)很好的做好了后端之前的負(fù)載工作。對(duì),還有一個(gè)神器keep alive
,感興趣的可以了解一下,nginx+keep alive
, 絕配。
- 靜態(tài)文件服務(wù)
nginx
其實(shí)本身就是應(yīng)對(duì)高并發(fā)的場(chǎng)景設(shè)計(jì)的,用它代理很多靜態(tài)的資源、視頻、圖片等,都是很好的選擇。
mac上的配置
安裝
brew install nginx
啟動(dòng)
(base) ~|? brew services start nginx
==> Successfully started `nginx` (label: homebrew.mxcl.nginx)
啟動(dòng)了就是這個(gè)樣子,就可以看到默認(rèn)的訪問頁(yè)面。
nginx的配置文件也是超級(jí)不好找的,不過適應(yīng)了就好,因?yàn)?code>homebrew已經(jīng)提前幫我們規(guī)劃好了。
# 配置文件
/opt/homebrew/etc/nginx
nginx的默認(rèn)的配置文件都在這里:
(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
重頭戲
說了這么久,我要的靜態(tài)資源服務(wù)器呢?安排上。在開始之前,我們需要做一下的準(zhǔn)備:
- 開放的端口號(hào)是什么,我這里就
8080
了,免得以后別的服務(wù)端口占用了; - 掛載的路徑 我就選
~/imgs
吧,放了一些我的typora
的筆記截圖
好的,現(xiàn)在資源規(guī)劃完成了,我們開始整。
配置的過程
cp nginx.conf nginx.conf_bck
vim nginx.conf
我就直接扔出來具體的配置了,每個(gè)配置都有詳細(xì)的解釋:
location /downloads {
#轉(zhuǎn)到的Nginx文件目錄
alias /xxx/files;
#打開目錄瀏覽功能
autoindex on;
#默認(rèn)為on,顯示出文件的確切大小,單位是bytes
#顯示出文件的大概大小,單位是kB或者M(jìn)B或者GB
autoindex_exact_size off;
#默認(rèn)為off,顯示的文件時(shí)間為GMT時(shí)間。
#改為on后,顯示的文件時(shí)間為文件的服務(wù)器時(shí)間
autoindex_localtime on;
#讓瀏覽器不保存臨時(shí)文件
add_header Cache-Control no-store;
#避免中文亂碼
charset utf-8,gbk;
#希望請(qǐng)求文件是下載而不是顯示內(nèi)容
#add_header Content-Disposition attachment;
}
nginx重新加載配置:
/opt/homebrew/bin/nginx -s reload
訪問地址:http://127.0.0.1:8080/downloads 即可看到效果:
點(diǎn)擊文件就可以實(shí)現(xiàn)類似于文件預(yù)覽的效果。
怎么樣子,是不是很好用!直接一個(gè)nice
。
服務(wù)關(guān)閉
作為節(jié)省資源型的猿,我喜歡不用的時(shí)候關(guān)閉軟件,來看看搭載了brew
的包管理器如何關(guān)閉服務(wù)。
(base) nginx|stable ? brew services stop nginx
Stopping `nginx`... (might take a while)
==> Successfully stopped `nginx` (label: homebrew.mxcl.nginx)
檢查一下:文章來源:http://www.zghlxwxcb.cn/news/detail-642362.html
ps -ef | grep nginx | grep -v grep
OK, 以上就是brew nginx
配置靜態(tài)資源服務(wù)器的全部過程了?;锇閭円灿浀藐P(guān)注,這樣就不會(huì)錯(cuò)過很多干貨了。文章來源地址http://www.zghlxwxcb.cn/news/detail-642362.html
到了這里,關(guān)于brew+nginx配置靜態(tài)文件服務(wù)器的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!