如何修复 nginx 错误“参数数量无效”?

Mik*_*dov 2 reverse-proxy nginx docker docker-compose nginx-reverse-proxy

我尝试重定向到代理服务器 nginx。

        location /phpmyadmin {
        proxy_http_version 1.1;
        proxy_pass https://${PMA}:5000/;
        proxy_set_header Host      $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
Run Code Online (Sandbox Code Playgroud)

但我收到错误:

nginx: [emerg] invalid number of arguments in "proxy_set_header" directive in /etc/nginx/nginx.conf:26
Run Code Online (Sandbox Code Playgroud)

此清单中检查错误的完整代码,因为我真的找不到某些错误(${env} = 脚本中的正确更改

user root;
worker_processes auto;
pcre_jit on;

events {
    worker_connections 1024;
}

http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;
    keepalive_timeout 3000;
    sendfile on;
    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;
    server {
        listen 443 ssl;
        listen [::]:443 ssl;
        ssl_certificate /etc/ssl/nginx.crt;
        ssl_certificate_key /etc/ssl/nginx.key;
        root /home;
        index default.html /default.html;
        location /phpmyadmin {
            proxy_http_version 1.1;
            proxy_pass https://${PMA}:5000/;
            proxy_set_header Host $host;
             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
             proxy_set_header X-Real-IP $remote_addr;
             proxy_set_header X-Forwarded-Proto https;
        }
        location /wordpress {
            return 307 http://${WP}:5050/;
        }
        location / {
            try_files /default.html default.html default.htm;
        }
    }
    server {
        listen 80;
        listen [::]:80;

        return 301 https://$host$request_uri;
    }
}
daemon off;
Run Code Online (Sandbox Code Playgroud)

邮寄需要多少 simvol)

Mik*_*dov 9

我使用 envsubst 进行环境替换,并且该实用程序尝试交换 $host 和其他 nginx env,解决方法为:

envsubst '\$WP \$PMA' < nginx.template.conf > nginx.ready.conf; rm nginx.template.conf
Run Code Online (Sandbox Code Playgroud)

因此,我专门设置了要替换的变量,避免一般替换 nginx 变量,例如 $host、$remote_addr 等。如果不指定要替换的变量,nginx 变量将被替换为空值

  • 您能解释一下您的代码吗?您已经编写了文件名,但没有解释哪个文件名的用途。并非每个人都认为代码是不言自明的。因此,解释它的作用的注释会很有帮助。 (3认同)