国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > Nginx > 正文

詳解Nginx靜態服務配置(root和alias指令)

2024-08-30 12:24:37
字體:
來源:轉載
供稿:網友

靜態文件

Nginx以其高性能著稱,常用與做前端反向代理服務器。同時nginx也是一個高性能的靜態文件服務器。通常都會把應用的靜態文件使用nginx處理。

配置nginx的靜態文件有兩個指令,一個 root 和一個 alias。對于這兩個指令,是否需要在路徑的后面加上斜杠,經常容易讓人犯暈,本文通過嘗試不同的匹配規則,歸納了一個比較通用的配置方式。

基本配置

與Nginx Location Url一文關于location url配置的實驗一樣,本文也使用vagrant虛擬機里的nginx。其基本配置如下:

/etc/nginx/sites-enabled/pro.conf

server {    listen 80 default_server;    server_name localhost;    access_log /var/log/nginx/pro/access.log;    error_log /var/log/nginx/pro/error.log;    error_page 404 /404.html;    root /vagrant/pro;    index index.html index.htm;}

項目的目錄如下:

pro tree.├── 403.html├── 404.html├── index.html├── static│  ├── flask│  │  └── m.png│  └── stc.jpg└── upload  └── up.png3 directories, 6 files

分別有兩個靜態文件夾,一個是static,另外一個是upload。

初識root

root 是指定項目的根目錄,適用與server和location。可以指定多個,如果locaiton沒有指定,會往其外層的server或http中尋找繼承。

訪問http://192.168.33.10/static/stc.jpg 會發現圖片已經返回。我們還尚未配置 location,為啥會正確的找到文件?學習root或者alias指令的時候,最好的辦法是給文件拓展名加上一個字符,使得該文件在硬盤中不存在,那么就能從nginx的error.log中看到nginx尋找文件的方式。

訪問 http://192.168.33.10/static/stc.jpgx,然后查看 /var/log/nginx/pro/error.log文件,可以看到如下的錯誤信息:

2016/09/28 07:41:48 [error] 4416#0: *70 open() "/vagrant/pro/static/stc.jpgx" failed (2: No such file or directory), client: 192.168.33.1, server: localhost, request: "GET /static/stc.jpgx HTTP/1.1", host: "192.168.33.10"

即/vagrant/pro/static/stc.jpgx 文件不存在。的確我們沒有這個文件。如果文件名正確,就能訪問,原因是由于在server中指定了root /vagrant/pro,此時的nginx就在該目錄下尋找文件,而url上的地址,正好和文件的路徑一致

 http://192.168.33.10 /static/stc.jpg  /vagrant/pro     /static/stc.jpg

由此可以猜想,nginx中root指令的地址,其實是替換了匹配后的url中的host。

root指令

為了驗證上面的猜想,需要多寫幾個location做實驗。添加一個location配置如下:

location ^~ /static {  root /vagrant/pro/static;}            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 霍州市| 娱乐| 邛崃市| 诸暨市| 额尔古纳市| 甘谷县| 浦东新区| 阿拉善右旗| 桃园市| 湄潭县| 福贡县| 兴海县| 昭苏县| 金溪县| 图片| 永顺县| 灵丘县| 九龙城区| 固始县| 衡南县| 阿拉善盟| 拜城县| 府谷县| 沛县| 射阳县| 乐陵市| 明光市| 怀宁县| 当涂县| 交城县| 红桥区| 甘泉县| 麟游县| 桃源县| 辽宁省| 安宁市| 青浦区| 太湖县| 姜堰市| 上高县| 四会市|