nginx共享文件并反向代理到公网
|
admin
2026年7月18日 21:2
本文热度 57
|
共享文件的方法千千万,今天想要使用nginx做一个简单易用的文件共享,不涉及到复杂的权限验证(nginx也可以做),适合内网测试或者做临时的的文件批量分发。http { include /etc/nginx/mime.types; default_type application/octet-stream;
server { listen 80; server_name _; charset utf-8;
location / { root /usr/share/nginx/html; autoindex on; autoindex_exact_size off; autoindex_localtime on; } }}
sudo docker run -d --name file-srv -p 8090:80 -v /docker_data/file-srv/data/share/:/usr/share/nginx/html:ro -v /docker_data/file-srv/data/nginx.conf:/etc/nginx/nginx.conf:ro nginx:latest
$ curl http://localhost:8090<html><head><title>Index of /</title></head><body><h1>Index of /</h1><hr><pre><a href="../">../</a></pre><hr></body></html>
现在只需要把文件放到"/docker_data/file-srv/data/share/"路径下即可通过浏览器或者curl、wget、webclient等下载文件。
2,反向代理到公网
首先登录云服务器控制台---域名管理,添加一个单独的子域名,我这边就是添加个sharefile的前缀。然后登录云服务器命令行,编辑一个新的nginx文件,大致如下:server {
server_name sharefile.ungameunlife.cn;
access_log /var/log/nginx/sharefile-access.log; error_log /var/log/nginx/sharefile-error.log;
location / { proxy_pass http://127.0.0.1:8090; }
server_tokens off;
client_max_body_size 10m;
listen 443 ssl; ssl_certificate /etc/letsencrypt/live/ungameunlife.cn/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/ungameunlife.cn/privkey.pem; include /etc/letsencrypt/options-ssl-nginx.conf; ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}
sudo systemctl reload nginx
这时候登录 https://sharefile.ungameunlife.cn/ 就能看到正常访问了。这是正常的,因为我的证书只申请了主域名,解决方式也很简单,通过certbot将子域名扩展上去,证书会刷新。sudo certbot certonly --expand -d ungameunlife.cn -d tools.ungameunlife.cn -d sharefile.ungameunlife.cn
sudo systemctl reload nginx
此时访问不再显示证书不受信任了,查看你证书里面也扩展了几个子域名1,nginx:nginx共享文件配置,nginx反向代理配置2,docker:docker运行镜像,映射文件和文件夹,映射端口
阅读原文:点击这里
该文章在 2026/7/18 21:02:33 编辑过