nginx配置靜態文件 通過url訪問


引言

使用Nginx布署靜態文件服務,Nginx服務得先有才能進行后續的事情。如果有同學不會部署的,可以參考我的上一篇文章yum安裝Nginx全流程指南。已經部署好的同學可以直接看下面的內容了。

Nginx 場景介紹

Nginx的配置繁多且復雜,但是實際的使用場景其實無非就是這么幾個

  • 正向代理
  • 反向代理
  • 負載均衡
  • 動靜分離
針對不同的應用場景有不同的配置文件,在未來我會針對不同的場景依次說明並給出對應的配置文件。在此留個坑,哈哈。

開始配置

回到當前主題,我們是要配置一個靜態文件服務供客戶端訪問。

一、linux系統定義一個訪問目錄

在home目錄新建一個files文件夾,里面存放文件供客戶端訪問

mkdir -p /home/files

二、Nginx 添加一個Location將剛才的目錄暴露出去

如果你是用yum安裝nginx的,那在etc/nginx/nginx.conf目錄下會有一個文件default.conf

default.conf是默認配置文件,暴露80端口,默認頁面為index.hmtl

cat default.conf可以看到如圖所示內容,添加紅框中的配置到文件中

image-20210315195913846


location /download {
alias   /home/files/;
autoindex on;
}

這一段的意思是增加127.0.0.1:80/download的解析,路徑指向/home/files文件夾。autoindex on;代表開啟目錄瀏覽

三、檢驗配置並重啟Nginx

1、檢驗配置文件是否正確

nginx -t

2、重啟nginx

nginx -s reload

其他配置項

server {
listen       80;

location /download {
#轉到的Nginx文件目錄
alias /home/files;
#打開目錄瀏覽功能
autoindex on;
#默認為on,顯示出文件的確切大小,單位是bytes
#顯示出文件的大概大小,單位是kB或者MB或者GB
autoindex_exact_size off;
#默認為off,顯示的文件時間為GMT時間。
#改為on后,顯示的文件時間為文件的服務器時間
autoindex_localtime on;
#讓瀏覽器不保存臨時文件
add_header Cache-Control no-store;
#避免中文亂碼
charset utf-8,gbk;
#希望請求文件是下載而不是顯示內容
#add_header Content-Disposition attachment;
}
}

部署過程中出現的問題

404

如果出現404錯誤,大概率可能是配置文件出錯。

有可能是location后多加一個左斜杠/

也有可以是指向的目錄地址不存在

403

403 Forbidden 代表被禁止的,一般是三種情況導致的

1、目錄權限不足

檢查目錄權限。權限不足就將權限加上

chmod -R 755 /home/files

2、nginx.conf用戶權限問題

vim /etc/nginx/nginx.conf

把 user 用戶名 改為 user root 或 其它有高權限的用戶名稱即可

3 、Centos中的selinux配置未關閉

查看SELinux狀態:

如果SELinux status參數為enabled即為開啟狀態

/usr/sbin/sestatus -v

如何關閉?

1、臨時關閉(不用重啟機器):

setenforce 0

2、永久關閉(要重啟機器)

vim /etc/selinux/config

將SELINUX=enforcing改為SELINUX=disabled


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM