nginx 获取服务器端口并将其用作变量

nginx 获取服务器端口并将其用作变量

有没有办法获取服务器端口并将其用作 var?

要按照下面的例子来做而不是 location /file-8081.zip { alias /var/www/8081/file.zip; }

server {
    listen       8081;
    server_name  localhost;
    location /file-$server_port.zip { alias /var/www/$server_port/file.zip; }
}

我希望每次有人访问http://ip:$port/file-$port.zip它时都会从该位置提供文件/var/www/$port/file.zip

答案1

不确定这是否符合您的要求,但我设法通过以下方式获得工作配置:

server {
    listen  8080;
    listen  8081;
    listen  8082;
    listen  8083;
    listen  8084;
    listen  8085;
    listen  8086;

    root /var/www;

    rewrite ^(/\w+)-(?<myport>\d+)(\.\w+)$ /$myport$1$3;

    if ($myport != $server_port) {
        return 403;
    }
}

相关内容