【发布时间】:2019-09-13 00:40:49
【问题描述】:
我目前正在托管 ShoutCast Manager 的副本,以便人们可以使用网络界面流式传输音频和配置他们的流。
我使用 Apache 2.4 Web 服务器作为 HTTP 服务器,它似乎在处理大型上传文件时出现问题。我已经编辑了我的 Apache 配置以允许上传更大的文件,并增加了超时限制。 PHP 还被赋予了更高的超时限制,以及 512MiB 的内存限制。
上传大小超过 200MiB 的音频文件时,服务器响应“服务不可用”,文件上传未完成。
因此,我希望将 NGINX 作为我的 Web 服务器解决方案,但在将我的重写规则转换为适用于 NGINX 的规则时遇到了问题。我目前在 Apache 中使用的规则如下:
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
# Rewrites
RewriteRule ^view/([0-9]+)/([0-9]+)/([^/]*)$ ./viewserver.php?portbase=$1&id=$2&srvname=$3 [L,QSA]
RewriteRule ^view/([0-9]+)/([0-9]+)/([^/]*)/$ ./viewserver.php?portbase=$1&id=$2&srvname=$3 [L,QSA]
RewriteRule ^start/([0-9]+)/([0-9]+)/([^/]*)$ ./control.php?control=$1&id=$2&action=start&srvname=$3 [L,QSA]
RewriteRule ^start/([0-9]+)/([0-9]+)/([^/]*)/$ ./control.php?control=$1&id=$2&action=start&srvname=$3 [L,QSA]
RewriteRule ^stop/([0-9]+)/([0-9]+)/([^/]*)$ ./control.php?control=$1&id=$2&action=stop&srvname=$3 [L,QSA]
RewriteRule ^stop/([0-9]+)/([0-9]+)/([^/]*)/$ ./control.php?control=$1&id=$2&action=stop&srvname=$3 [L,QSA]
RewriteRule ^restart/([0-9]+)/([0-9]+)/([^/]*)$ ./control.php?control=$1&id=$2&action=restart&srvname=$3 [L,QSA]
RewriteRule ^restart/([0-9]+)/([0-9]+)/([^/]*)/$ ./control.php?control=$1&id=$2&action=restart&srvname=$3 [L,QSA]
RewriteRule ^edit/([0-9]+)/([0-9]+)/([^/]*)$ ./edit.php?portbase=$1&id=$2&status=$3 [L,QSA]
RewriteRule ^edit/([0-9]+)/([0-9]+)/([^/]*)/$ ./edit.php?portbase=$1&id=$2&status=$3 [L,QSA]
RewriteRule ^delete/([0-9]+)/([0-9]+)/([^/]*)$ ./delete.php?id=$1&port=$2&srvname=$3 [L,QSA]
RewriteRule ^delete/([0-9]+)/([0-9]+)/([^/]*)/$ ./delete.php?id=$1&port=$2&srvname=$3 [L,QSA]
RewriteRule ^widgets/([^/]*)/([^/]*)\.js$ ./include/widgets.js.php?port=$1&type=$2 [L,QSA]
RewriteRule ^public/api/autodj/([^/]*)/([^/]*)/([^/]*)$ ./api/api.controller/index.php?api-key=$1&port=$2&action=autodj&autodj=$3 [L,QSA]
RewriteRule ^public/api/autodj/([^/]*)/([^/]*)/([^/]*)/$ ./api/api.controller/index.php?api-key=$1&port=$2&action=autodj&autodj=$3 [L,QSA]
RewriteRule ^public/api/server/([^/]*)/([^/]*)/([^/]*)$ ./api/api.controller/index.php?api-key=$1&port=$2&action=$3 [L,QSA]
RewriteRule ^public/api/server/([^/]*)/([^/]*)/([^/]*)/$ ./api/api.controller/index.php?api-key=$1&port=$2&action=$3 [L,QSA]
RewriteRule ^public/api/schedule/([^/]*)/([^/]*)/([^/]*)$ ./api/api.controller/index.php?api-key=$1&port=$2&action=schedule&schedule=$3 [L,QSA]
RewriteRule ^public/api/schedule/([^/]*)/([^/]*)/([^/]*)/$ ./api/api.controller/index.php?api-key=$1&port=$2&action=schedule&schedule=$3 [L,QSA]
RewriteRule ^download-playlist/([0-9]+).([^/]*)$ ./include/widgets/playlists/playlists.php?port=$1&type=$2 [L,QSA]
RewriteRule ^events/([^/]*)/$ ./eventlog.php?log=$1 [L,QSA]
RewriteRule ^events/([^/]*)/([^/]*)/$ ./eventlog.php?log=$1&page=$2 [L,QSA]
# Errors
RewriteRule ^errors/404/$ ./404.php [L,QSA]
ErrorDocument 404 /errors/404/
RewriteRule ^errors/403/$ ./404.php [L,QSA]
ErrorDocument 403 /errors/403/
RewriteRule ^errors/500/$ ./500.php [L,QSA]
ErrorDocument 500 /errors/500/
可以在此处找到 ShoutCast Manager 的副本:https://github.com/gaza1994/SHOUTcast-Manager
非常感谢任何有关制定 NGINX 兼容重写规则的帮助!
【问题讨论】:
标签: html linux nginx server webserver