近期需要頻繁從遠程服務器下載文件, 中間隔著堡壘機, 跳板機, 操作起來有些不方便, 于是就在nginx上開放了一個上下文用于文件下載, 但是也踩了坑, 下面分享一下整個過程:
1. 建立文件目錄
我用的nginx是通過yum安裝的
mkdir /usr/share/nginx/html/deo
2. 配置文件
vi /etc/nginx/conf.d/default.conf
添加上下文:
location /deo/ {
alias /usr/share/nginx/html/deo/;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
add_header Cache-Control no-store;
}
3. 重新加載nginx配置文件
nginx -s reload
4. 測試(開始踩坑)
使用瀏覽器訪問, 結果卻是大大的403 FORBIDDEN:
403
查看error.log有如下日志:
2021/01/13 16:34:42 [error] 5095#5095: *1 "/usr/share/nginx/html/deo/index.html" is forbidden (13: Permission denied), client: 123.11.13.29, server: localhost, request: "GET /deo/ HTTP/1.1", host: "29.143.12.134"
得知是由于權限問題, 檢查nginx的運行用戶:
nginx的運行用戶為: nginx
接下來的操作思路就很清晰了: 修改deo目錄的權限或者更改nginx worker的運行賬戶, 我選擇的是后者
vi /etc/nginx/nginx.conf
在文件開頭部分:
#user nginx;
user root;
5. 重啟服務測試
systemctl restart nginx
使用瀏覽器訪問:
image.png
注意,如果提示directory index of "/usr/share/nginx/deo/" is forbidden娃胆,需要排查一下關聯(lián)的配置文件中是否出現(xiàn)了多組location /写妥,只保留具體站點的一個文件內的location /即可放刨。