2015-12-17 2 views
3

Я пытаюсь перенастроить мою установку NGINX на прокси-сервер для локальной установки призраков.NGINX - директива «server» здесь не разрешена

В дополнение к этому, я добавляю SSL (letencrypt), но я все время получаю сообщение об ошибке.

Ошибки я получаю -

nginx -t -c /etc/nginx/sites-available/ghost 
 
nginx: [emerg] "server" directive is not allowed here in /etc/nginx/sites-available/ghost:1 
 
nginx: configuration file /etc/nginx/sites-available/ghost test failed

Вот мой конфиг

server { 
 
     listen   80; 
 
     server_name domainnamehere.com; 
 
     return   301 https://$server_name$request_uri; 
 
} 
 

 
server { 
 
     listen 443; 
 
     server_name www.nonstopdev.com; 
 
     access_log  /var/log/nginx/domainnamehere.com.access.log; 
 
     error_log  /var/log/nginx/domainnamehere.com.error.log; 
 

 
     ssl on; 
 
     ssl_certificate   /etc/letsencrypt/live/domainnamehere.com/fullchain.pem; 
 
     ssl_certificate_key  /etc/letsencrypt/live/domainnamehere.com/privkey.pem; 
 

 

 
     location/{ 
 
       proxy_set_header X-Real-IP $remote_addr; 
 
       proxy_set_header Host  $http_host; 
 
       proxy_pass   http://127.0.0.1:2368; 
 
     } 
 
}

Следующая конфигурация отлично работает без каких-либо является судится -

server { 
 
    listen 80; 
 
    server_name mydomainname.com; 
 
    location/{ 
 
     proxy_set_header X-Real-IP $remote_addr; 
 
     proxy_set_header Host  $http_host; 
 
     proxy_pass   http://127.0.0.1:2368; 
 
    } 
 
}

ответ

1

Мне удалось решить проблему, используя следующий конфигурационный файл. Похоже, что это хорошо, существует ряд ошибок, перечисленных для перенаправления Ghost и HTTPS.

server { 
    listen 443; 

    ssl on; 
    server_name mydomain.com www.mydomain.com; 
    ssl_certificate /etc/letsencrypt/live/mydomain.com/fullchain.pem; 
    ssl_certificate_key /etc/letsencrypt/live/mydomain.com/privkey.pem; 

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
    ssl_prefer_server_ciphers on; 
    ssl_ciphers AES256+EECDH:AES256+EDH:!aNULL; 

    location/{ 
     proxy_set_header  X-Real-IP $remote_addr; 
     proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header  X-Forwarded-Proto $scheme; 
     proxy_set_header  Host $http_host; 
     proxy_intercept_errors on; 
     proxy_pass    http://127.0.0.1:2368; 
    } 
} 

server { 
    listen 80; 
    server_name mydomain.com; 
    return 301 https://$host$request_uri; 
} 
3

это выглядит неполной конфигурации.

Нормальная конфигурация NGINX начинается с файла nginx.conf (т.е. /etc/nginx/nginx.conf), который объявляет пользователя, идентификатор процесса и другие необходимые материалы, за которыми следует ветвь http {}. ветви сервера {}, которые обычно хранятся в каталоге conf.d, или где они обычно включаются в конец этой ветви http {} в nginx.conf. так что, даже если они начинаются с сервера как внешний узел, это не действительно внешний узел. он находится внутри узла http.

Если вы загружаете конфигурационный файл напрямую, можете убедиться, что он содержит полную конфигурацию nginx, включая эти недостающие части?

+0

Обновлено с помощью конфигурации, которая работает, но без SSL ... – mutantChickenHer0

Смежные вопросы