linux - 配置 nginx 使其支持文件系统
问题描述
我在/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
到/usr/share/nginx/html
nginx 映像中。之后,您将能够在浏览器的 8080 端口上看到文件。
码头工人命令: -
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;
}
}
推荐阅读
- php - 无法在 php 中选择下拉菜单时隐藏 div
- swiftui - macOS 和 iOS 的不同列表样式
- mxnet - 通过 MXNet 在模型并行性中训练insightface 时出现错误“ModuleNotFoundError: No module named 'parall_module_dist'”
- android - 如何在小部件树中显示 Flutter 插件小部件
- angular - 测试 emit 已在 karma 中调用不工作
- python-3.6 - Nominatim 库偶尔会为连接池提供错误
- c# - C# DateTime.Tostring(),句点而不是冒号,不管或提供的格式
- javascript - 如何从js中的字符串中提取每个整数或浮点数(正数或负数)
- elasticsearch - 获取elasticsearch集群中的索引总数
- antd - 网格中具有相同高度的 antd 卡