nginxサーバーディレクティブはここでは許可されていません


44

そこにはこれがだまされていることは知っていますが、私の状況ではこれを解決できないようです。

私はnginxをリバースプロキシとしてApacheで設定することに関する記事をフォローしています。

そして、私はこのエラーを受け取ります:

nginx: [emerg] "server" directive is not allowed here in 
       /etc/nginx/v.hosts/mydomain.com.conf:3
nginx: configuration file /etc/nginx/nginx.conf test failed

/etc/nginx/nginx.confはこのように見えます:

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream; 
    access_log  /var/log/nginx/access.log  main;  
    charset   utf-8;
    keepalive_timeout  65;
    server_tokens       off;
    tcp_nopush          on;
    tcp_nodelay         off;

    server {
          listen 80;
          server_name  _;          
          root   /usr/share/nginx/html;
          index  index.html index.htm;     
       }
    }
include  v.hosts/*.conf;

そして、これは/etc/nginx/v.hosts/mydomain.com.conf次のようになります。

server {
      listen 80;
      server_name  mydomain.com;

       access_log  off;
       error_log off;

      location / {
        proxy_pass http://127.0.0.1:81;
        proxy_set_header        X-Real-IP       $remote_addr;
        proxy_set_header        Host            $host;
        proxy_redirect          off;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_connect_timeout 90;
        proxy_send_timeout 90;
        proxy_read_timeout 90;
        client_max_body_size 10m;
        client_body_buffer_size 128k;
        proxy_buffer_size 4k;
        proxy_buffers 4 32k;
        proxy_busy_buffers_size 64k;
      }
 }

手がかりとヘルプが高く評価されます:)


それらは現在死んでいるので、すべてのリンクを削除しました。
スヴェン

回答:


39

問題はここにあります:

    }
include  v.hosts/*.conf;

ディレクティブのhttp前にブロックを閉じたincludeため、構成が終了しました。これが、含まれているファイルがどれも機能しない理由です。

問題を修正するにはincludehttpブロック内のファイル:

    include  v.hosts/*.conf;
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.