Неизвестная директива "сервер" в/etc/nginx/nginx.conf:4
С nginx/0.7.65 Я получаю эту ошибку в строке 4. Почему она не распознает server
?
#### CHAT_FRONT ####
server {
listen 7000 default deferred;
server_name example.com;
root /home/deployer/apps/chat_front/current/public;
location ^~ /assets/ {
gzip_static on;
expires max;
add_header Cache-Control public;
}
error_page 500 502 503 504 /500.html;
client_max_body_size 4G;
keepalive_timeout 10;
}
#### CHAT_STORE ####
server {
listen 7002 default deferred;
server_name store.example.com;
root /home/deployer/apps/chat_store/current/public;
error_page 500 502 503 504 /500.html;
client_max_body_size 4G;
keepalive_timeout 10;
}
#### LOGIN ####
server {
listen 7004 default deferred;
server_name login.example.com;
root /home/deployer/apps/login/current/public;
location ^~ /assets/ {
gzip_static on;
expires max;
add_header Cache-Control public;
}
error_page 500 502 503 504 /500.html;
client_max_body_size 4G;
keepalive_timeout 10;
}
#### PERMISSIONS ####
server {
listen 7006 default deferred;
server_name permissions.example.com;
root /home/deployer/apps/permissions/current/public;
error_page 500 502 503 504 /500.html;
client_max_body_size 4G;
keepalive_timeout 10;
}
#### SEARCH ####
server {
listen 7008 default deferred;
server_name search.example.com;
root /home/deployer/apps/search/current/public;
error_page 500 502 503 504 /500.html;
client_max_body_size 4G;
keepalive_timeout 10;
}
#### ANALYTICS ####
server {
listen 7010 default deferred;
server_name analytics.example.com;
root /home/deployer/apps/analytics/current/public;
error_page 500 502 503 504 /500.html;
client_max_body_size 4G;
keepalive_timeout 10;
}
Ответы
Ответ 1
Директива server
должна содержаться в контексте модуля http
. Кроме того, вам не хватает модуля событий верхнего уровня, который имеет одну обязательную настройку и кучу строф, которые должны быть в модуле http вашего конфига. Хотя документация nginx не особенно полезна при создании конфигурации с нуля, есть working примеры.
Источник: документация nginx по директиве сервера
Ответ 2
Добавление записи верхнего уровня обострило проблему:
events { }
Ответ 3
Я переписал файл *.conf, и он сработал.
Ответ 4
Попробуйте настроить окончание строк и кодировку вашего файла конфигурации. В моем случае требовалось кодирование ANSI и, возможно, окончания строк в стиле "Linux" (только символы LF
, а не символы CR
и LF
).
Я знаю, что это довольно старый вопрос. Однако рекомендация о принятом ответе (что директива server
должна содержаться в контексте модуля http
) может привести к путанице, поскольку существует множество примеров (на веб-сайте Nginx также и в этом руководстве Microsoft), где директива server
не содержится. в контексте модуля http
.
Возможно, ответ sd z ("Я переписал файл *.conf, и он работал") исходит из той же причины: был файл .config с неправильной кодировкой или окончаниями строк, который был исправлен после перезаписи файла.