Директива nginx "mail" и "stream" не разрешена в site-enabled/
У меня проблема, когда я пытаюсь использовать директиву потока или почты с nginx. Я использую nginx/1.16.1 и Ubuntu 18.04.4 LTS.
Это мой nginx.conf
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 1200;
# multi_accept on;
}
http {
##
# Basic Settings
##
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
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; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
##
# Logging Settings
##
access_log off;
#/var/log/nginx/access.log;
error_log /var/log/nginx/error_website.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_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
##
# Virtual Host Configs
##
include /etc/nginx/conf.d/*.websiteconf;
include /etc/nginx/sites-enabled/*.websiteconf;
}
И я хочу использовать директиву stream в одной из конфигураций моего сайта (test.streamconf)
stream {
server {
listen 500 udp;
proxy_pass test.com:500;
}
server {
listen 4500 udp;
proxy_pass test.com:4500;
}
}
Но если я создам символическую ссылку для папки с поддержкой сайтов и проверю свою конфигурацию с помощью "sudo nginx -t", я получаю следующее сообщение об ошибке:
nginx: [Emerg] директива "stream" не разрешена здесь, в /etc/nginx/sites-enabled/test.streamconf:1
nginx: файл конфигурации /etc/nginx/nginx.conf тест не пройден
Модуль потока и почты уже установлен...
Что я не так?
1 ответ
Хорошо, теперь я понял. nginx загружает отдельные вложенные конфигурации.
Я добавил в nginx.conf следующий корневой каталог:
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 1200;
# multi_accept on;
}
http {
##
# Basic Settings
##
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
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; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
##
# Logging Settings
##
access_log off;
#/var/log/nginx/access.log;
error_log /var/log/nginx/websiteerror.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_types text/plain text/css application/json application/javascript text/xml application/xml appl$
##
# Virtual Host Configs
##
include /etc/nginx/conf.d/*.websiteconf;
include /etc/nginx/sites-enabled/*.websiteconf;
}
stream {
access_log off;
error_log /var/log/nginx/streamerror.log;
include /etc/nginx/conf.d/*.streamconf;
include /etc/nginx/sites-enabled/*.streamconf;
}
И мой конфигурационный файл "потока" теперь выглядит так (я думал, что здесь тоже нужно начинать с "потока")...
server {
listen [::]:4500 ipv6only=off;
listen [::]:500 ipv6only=off;
proxy_pass server_name.com:$server_port;
proxy_protocol on;
}