问题描述
我在 /root 目录中,里面有一个名为 testfolder 的文件夹。在该文件夹中,我有一堆文件夹和子文件夹,我想将它们托管在 Nginx 服务器上。 我正在运行以下命令来启动我的 Nginx 服务器:
docker run --name file-server -v $(pwd)/testfolder:/app -p 8080:80 -d Nginx
/etc/Nginx/sites-available/default 文件有以下内容:
location /testfolder {
# First attempt to serve request as file,then
# as directory,then fall back to displaying a 404.
alias /root/testfolder/;
autoindex on;
try_files $uri $uri/ =404;
}
现在当我启动我的服务器并点击 /testfolder 时,它给了我一个 403 错误
解决方法
使用 nginx 作为 Web 服务器提供静态文件是一个不错的选择。
为了使静态文件可用,您需要将 testfolder
复制到 nginx 映像内的 /usr/share/nginx/html
。之后,您就可以在浏览器的 8080 端口看到文件了。
Docker cmd:-
docker run -it --rm -d -p 8080:80 --name web -v ~/code/docker/testfolder:/usr/share/nginx/html nginx
为了访问静态文件列表视图中的目录,我们需要创建一个自定义的 nginx conf 文件并将其传递给 nginx 容器。
例如:- Docker 命令:-
docker run -it --rm -d -p 8080:80 --name web -v ~/code/nginx-static:/usr/share/nginx/html -v ~/code/nginx-static/default.conf:/etc/nginx/conf.d/default.conf nginx
default.conf:-
server{
listen 80 default_server;
listen [::]:80 default_server;
location / {
autoindex on;
root /usr/share/nginx/html;
}
}