OpenResty修复alist上传下载文件过大报错
AI总结
这段文本是一个详细的 Nginx 服务器配置指南,旨在帮助用户解决在使用 Alist 时遇到的上传文件错误。它包括了以下关键步骤:
登录管理面板:用户需要登录到服务器的管理面板。
选择域名:在管理面板中找到自己的 Alist 域名。
备份当前配置:在更改配置之前,用户应该备份当前的配置。
替换配置代码:用户需要用提供的示例代码替换现有的配置代码,并替换其中的占位符为自己的实际信息。
配置代码说明:提供了配置代码的详细解释,包括监听端口、服务器域名、日志路径、SSL 证书路径、重定向规则、静态文件缓存策略等。
注意事项:强调在更改配置之前要仔细阅读示例代码,并在更改后进行测试。
前情提要
如果alist上传报错请按照下方步骤操作
1.打开1panel管理面板找到网站进去
2.选中自己的alist域名 点击后方的配置
3.进入配置点击配置文件
4.更改前先看好我打码地方的配置自己保存好等会儿需要使用
5.保留好你原本的配置万一有问题好还原 备份好后直接改好下方代码替换原来的代码
自己的域名
自己的域名路径
server_name 自己的域名;
access_log /www/sites/自己的域名/log/access.log main;
error_log /www/sites/自己的域名/log/error.log;
ssl_certificate /www/sites/自己的证书地址/ssl/fullchain.pem;
ssl_certificate_key /www/sites/自己的证书地址/ssl/privkey.pem;
改好复制代码替换正常来讲无需更改其他
示例配置代码
看清再用
server {
listen 8080;
listen [::]:8080;
listen 4443 ssl http2;
listen [::]:4443 ssl http2;
server_name 自己的域名;
index index.php index.html index.htm default.php default.htm default.html;
client_max_body_size 0; # 不限制上传大小
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Real-IP $remote_addr;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
access_log /www/sites/自己的域名/log/access.log main;
error_log /www/sites/自己的域名/log/error.log;
location ^~ /.well-known/acme-challenge {
allow all;
root /usr/share/nginx/html;
}
include /www/sites/al.xinz.fun/proxy/*.conf;
if ($scheme = http) {
return 301 https://$host$request_uri;
}
ssl_certificate /www/sites/自己的证书地址/ssl/fullchain.pem;
ssl_certificate_key /www/sites/自己的证书地址/ssl/privkey.pem;
ssl_protocols TLSv1.3 TLSv1.2 TLSv1.1 TLSv1;
ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:!aNULL:!eNULL:!EXPORT:!DSS:!DES:!RC4:!3DES:!MD5:!PSK:!KRB5:!SRP:!CAMELLIA:!SEED;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
error_page 497 https://$host$request_uri;
proxy_set_header X-Forwarded-Proto https;
add_header Strict-Transport-Security "max-age=31536000";
location ~ .*\.(js|css|png|jpg|jpeg|gif|ico|bmp|swf|eot|svg|ttf|woff|woff2)$ {
expires 30d;
log_not_found off;
valid_referers none al.xinz.fun;
if ($invalid_referer) {
return 404;
access_log off;
}
}
# 代理缓冲设置
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
# 设置临时文件写入大小
proxy_temp_file_write_size 512k; # 设置为大于256k
}
配置说明
server {
listen 8080; # 监听 8080 端口(HTTP)
listen [::]:8080; # 监听 IPv6 的 8080 端口
listen 4443 ssl http2; # 监听 4443 端口(HTTPS,支持 HTTP/2)
listen [::]:4443 ssl http2; # 监听 IPv6 的 4443 端口(HTTPS,支持 HTTP/2)
server_name 自己的域名; # 设置服务器的域名(替换为您的域名)
index index.php index.html index.htm default.php default.htm default.html; # 默认文档列表
client_max_body_size 0; # 不限制上传文件的大小
# 设置转发头部,确保代理请求中的信息
proxy_set_header Host $host; # 将主机头设置为请求中的主机
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 添加客户端 IP 到转发头
proxy_set_header X-Forwarded-Host $server_name; # 设置转发的主机头
proxy_set_header X-Real-IP $remote_addr; # 将真实 IP 设置为远程地址
proxy_http_version 1.1; # 设置代理使用的 HTTP 版本
proxy_set_header Upgrade $http_upgrade; # 支持 WebSocket 升级
proxy_set_header Connection $http_connection; # 设置连接头
access_log /www/sites/自己的域名/log/access.log main; # 设置访问日志路径
error_log /www/sites/自己的域名/log/error.log; # 设置错误日志路径
location ^~ /.well-known/acme-challenge {
allow all; # 允许所有访问
root /usr/share/nginx/html; # 设置根目录以处理 Let's Encrypt 验证
}
include /www/sites/al.xinz.fun/proxy/*.conf; # 引入其他配置文件
if ($scheme = http) {
return 301 https://$host$request_uri; # 强制 HTTP 重定向到 HTTPS
}
ssl_certificate /www/sites/自己的证书地址/ssl/fullchain.pem; # SSL 证书路径
ssl_certificate_key /www/sites/自己的证书地址/ssl/privkey.pem; # SSL 证书密钥路径
ssl_protocols TLSv1.3 TLSv1.2 TLSv1.1 TLSv1; # 启用的 SSL/TLS 协议
ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:!aNULL:!eNULL:!EXPORT:!DSS:!DES:!RC4:!3DES:!MD5:!PSK:!KRB5:!SRP:!CAMELLIA:!SEED; # SSL 加密套件
ssl_prefer_server_ciphers on; # 优先使用服务器的加密套件
ssl_session_cache shared:SSL:10m; # SSL 会话缓存设置
ssl_session_timeout 10m; # SSL 会话超时时间
error_page 497 https://$host$request_uri; # 处理 HTTP to HTTPS 的错误页面
proxy_set_header X-Forwarded-Proto https; # 设置转发协议为 HTTPS
add_header Strict-Transport-Security "max-age=31536000"; # 启用 HSTS,设置最大生存时间为一年
location ~ .*\.(js|css|png|jpg|jpeg|gif|ico|bmp|swf|eot|svg|ttf|woff|woff2)$ {
expires 30d; # 设置静态文件的过期时间为 30 天
log_not_found off; # 关闭未找到文件的日志
valid_referers none al.xinz.fun; # 允许的引荐来源
if ($invalid_referer) {
return 404; # 如果来源无效,返回 404
access_log off; # 关闭访问日志
}
}
# 代理缓冲设置
proxy_buffer_size 128k; # 设置单个缓冲区的大小
proxy_buffers 4 256k; # 设置缓冲区的数量和大小
proxy_busy_buffers_size 256k; # 设置繁忙缓冲区的大小
# 设置临时文件写入大小
proxy_temp_file_write_size 512k; # 设置为大于256k,以满足配置要求
}
alist播放失败
更改示例
不可复制粘贴
server {
listen 8080;
listen [::]:8080;
server_name al.xinz.fun;
# 强制重定向到 HTTPS
if ($scheme = http) {
return 301 https://$host:4443$request_uri;
}
# 处理 HTTP 请求
location / {
proxy_pass http://192.168.31.91:5244; # 替换为实际后端服务地址
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Range $http_range;
proxy_set_header If-Range $http_if_range;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
client_max_body_size 0; # 不限制传输大小
}
# Let's Encrypt 验证
location ^~ /.well-known/acme-challenge {
allow all;
root /usr/share/nginx/html;
}
# 日志
access_log /www/sites/al.xinz.fun/log/access.log main;
error_log /www/sites/al.xinz.fun/log/error.log;
}
server {
listen 4443 ssl http2;
listen [::]:4443 ssl http2;
server_name al.xinz.fun;
# SSL 证书文件路径
ssl_certificate /www/sites/al.xinz.fun/ssl/fullchain.pem;
ssl_certificate_key /www/sites/al.xinz.fun/ssl/privkey.pem;
# SSL 配置
ssl_protocols TLSv1.3 TLSv1.2 TLSv1.1 TLSv1;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:!aNULL:!eNULL:!EXPORT:!DSS:!DES:!RC4:!3DES:!MD5:!PSK:!KRB5:!SRP:!CAMELLIA:!SEED';
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
# 处理 HTTPS 请求
location / {
proxy_pass http://192.168.31.91:5244; # 替换为实际后端服务地址
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Range $http_range;
proxy_set_header If-Range $http_if_range;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
client_max_body_size 0; # 不限制传输大小
}
# 错误页面处理
error_page 497 https://$host$request_uri;
# HSTS
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
}
在原有配置上自己更改
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 鑫仔
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果