【问题标题】:Nginx not recognising "user" variableNginx 无法识别“用户”变量
【发布时间】:2022-11-24 12:02:43
【问题描述】:

我已经设置了一个开发服务器很长一段时间,并且正在清理和设置一个新服务器。

我通过node.jsnginx 运行一个前端和三个 API。我以前从未遇到过这个nginx.conf 的问题,但由于某种原因它现在无法正常工作。我还没有对它进行更改,也没有对 sites/*.conf(s) 进行更改。他们在我的其他服务器上运行良好。

错误:

nginx: [emerg] unknown "user" variable
nginx: configuration file /etc/nginx/nginx.conf test failed

这是我的nginx.conf

user www-data;

## grep processor /proc/cpuinfo | wc -l
worker_processes auto;

pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
  ## ulimit -n
  worker_connections 1024;
  # multi_accept on;
}

http {
  ##
  ## Basic Settings
  ##
  sendfile on;
  tcp_nopush on;
  types_hash_max_size 2048;
  # server_tokens off;
  server_names_hash_bucket_size 64;
  # server_name_in_redirect off;
  include /etc/nginx/mime.types;
  default_type application/octet-stream;

  ##
  ## SSL Settings
  ##
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
  ssl_prefer_server_ciphers on;

  ##
  ## Logging Settings
  ##
  access_log /var/log/nginx/access.log;
  error_log /var/log/nginx/error.log;

  ##
  ## Gzip Settings
  ##
  gzip on;
  gzip_vary on;
  gzip_proxied any;
  gzip_comp_level 6;
  gzip_buffers 16 8k;
  gzip_http_version 1.1;
  gzip_min_length 256;
  gzip_types application/atom+xml application/geo+json application/javascript application/x-javascript application/json application/ld+json application/manifest+json application/rdf+xml application/rss+xml application/xhtml+xml application/xml font/eot font/otf font/ttf image/svg+xml text/css text/javascript text/plain text/xml;

  ##
  ## Virtual Host Configs
  ##
  include /etc/nginx/conf.d/*.conf;
  include /etc/nginx/sites/*;
}

这些是我拥有的 2 个sites/*.conf(s):

1.conf(API)

server {
  ## HTTPS
  listen 443 ssl;
  listen [::]:443 ssl;

  ## TIMEOUTS
  proxy_read_timeout 600;
  proxy_connect_timeout 600;
  proxy_send_timeout 600;

  ## SSL CONFIGURATION
  ssl_certificate /etc/ssl/XXXX.pem;
  ssl_certificate_key /etc/XXXX.key;
  ssl_client_certificate /etc/ssl/cloudflare.crt;
  ssl_verify_client on;

  ## LISTEN FOR THESE HOSTNAMES
  server_name XXXX.XXXX.XXXX;

  ## HEADERS
  add_header Cache-Control no-cache;

  ## CONTENT LOCATION
  location /XXXX1/ {
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
    proxy_pass http://localhost:3001/;
    proxy_redirect off;
  }

  location /XXXX2/ {
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
    proxy_pass http://localhost:3002/;
    proxy_redirect off;
  }

  location /XXXX3/ {
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
    proxy_pass http://localhost:3003/;
    proxy_redirect off;
  }

  ## ERROR PAGE LOCATION
  error_page 404 /404.html;
  location = /404.html {
    root $HOME/XXXX/error/404;
    internal;
  }

  ## DENY REQUESTS STARTING WITH ht (htaccess, htgroup, htusers)
  location ~ /\.ht {
    deny all;
  }
}

2.conf(前端)

server {
  ## HTTPS
  listen 443 ssl;
  listen [::]:443 ssl;

  ## TIMEOUTS
  proxy_read_timeout 600;
  proxy_connect_timeout 600;
  proxy_send_timeout 600;

  ## SSL CONFIGURATION
  ssl_certificate /etc/ssl/XXXX.pem;
  ssl_certificate_key /etc/ssl/XXXX.key;
  ssl_client_certificate /etc/ssl/cloudflare.crt;
  ssl_verify_client on;

  ## LISTEN FOR THESE HOSTNAMES
  server_name XXXX.XXXX.XXXX;

  ## HEADERS
  add_header Cache-Control no-cache;

  ## CONTENT LOCATION
  location / {
    expires -1;
    root $HOME/XXXX/XXXX;
    index index.html;
    try_files $uri $uri/ =404;
  }

  ## ERROR PAGE LOCATION
  error_page 404 /404.html;
  location = /404.html {
    root $HOME/XXXX/error/404;
    internal;
  }

  ## DENY REQUESTS STARTING WITH ht (htaccess, htgroup, htusers)
  location ~ /\.ht {
    deny all;
  }
}

【问题讨论】:

    标签: nginx


    【解决方案1】:

    我想通了。原来你不能在 nginx 配置中使用环境变量。

    必须删除所有 $HOME 声明。

    【讨论】:

      猜你喜欢
      • 2021-02-27
      • 2013-05-15
      • 2014-06-10
      • 2017-01-04
      • 2013-08-13
      • 2018-11-12
      • 2013-02-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多