![nginx 获取服务器端口并将其用作变量](https://linux22.com/image/698652/nginx%20%E8%8E%B7%E5%8F%96%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%AB%AF%E5%8F%A3%E5%B9%B6%E5%B0%86%E5%85%B6%E7%94%A8%E4%BD%9C%E5%8F%98%E9%87%8F.png)
有没有办法获取服务器端口并将其用作 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;
}
}