【问题标题】:Why is Nginx 1.10.0 failing with multiple server blocks?为什么 Nginx 1.10.0 因多个服务器块而失败?
【发布时间】:2016-06-22 02:00:12
【问题描述】:

在我的 Ubuntu 16.04 节点上设置 nginx 1.10.0 服务器时遇到了很大的问题。
第一个带有配置的虚拟主机

server {
   server_name lukvonstrom.de;

   server_tokens off;

   listen 80;
   listen [::]:80;

   return 301 https://lukvonstrom.de$request_uri;

}




server {

    server_name lukvonstrom.de;

    server_tokens off;

    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    root /var/www/lukvonstrom.de/;

    index index.html;

    add_header X-Frame-Options SAMEORIGIN;
    add_header X-Content-Type-Options nosniff;
    add_header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload";
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Robots-Tag none;

    ssl_certificate /etc/letsencrypt/live/lukvonstrom.de/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/lukvonstrom.de/privkey.pem;

    ssl_session_cache shared:SSL:50m;
    ssl_prefer_server_ciphers on;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

    ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES$

    resolver 8.8.8.8;
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_trusted_certificate /etc/letsencrypt/live/lukvonstrom.de/fullchain.pem;

    ssl_dhparam /etc/nginx/ssl/dhparam4096.pem;

}

运行没有问题。在本例中,当我在 conf.d 目录中添加新主机时,它是 git.lukvonstrom.de,具有以下配置:

server {
    server_name git.lukvonstrom.de;

    server_tokens off;

    listen 80;
    listen [::]:80;

    return 301 https://git.lukvonstrom.de$request_uri;
}

server {
    server_name git.lukvonstrom.de;
    client_max_body_size 50m;

    location / {
            proxy_pass http://localhost:3000;
    }

    server_tokens off;

    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    add_header X-Frame-Options SAMEORIGIN;
    add_header X-Content-Type-Options nosniff;
    add_header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload";
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Robots-Tag none;

    ssl_certificate /etc/letsencrypt/live/git.lukvonstrom.de/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/git.lukvonstrom.de/privkey.pem;
    ssl_session_cache shared:SSL:50m;
    ssl_prefer_server_ciphers on;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES$
    resolver 8.8.8.8;
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_trusted_certificate /etc/letsencrypt/live/git.lukvonstrom.de/fullchain.pem;
    ssl_dhparam /etc/nginx/ssl/dhparam4096.pem;
}
}

nginx -t 产生以下输出

nginx: [emerg] unexpected end of file, expecting ";" or "}" in /etc/nginx/conf.d/git.lukvonstrom.de.conf:44
nginx: configuration file /etc/nginx/nginx.conf test failed

有没有人能解释一下为什么会出现这个错误?

提前致谢, LukvonStrom

【问题讨论】:

  • 错误提示您准确的文件和行。有什么问题?我猜是双闭括号
  • 顺便说一句,你在 ssl_ciphers 行中有语法错误

标签: ubuntu nginx


【解决方案1】:

您能否尝试使用不同的服务器名称。服务器名称“lukvonstrom.de”对于不同的服务器块应该是唯一的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-19
    • 2012-04-06
    • 1970-01-01
    • 2012-09-08
    • 2013-09-24
    • 2011-07-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多