Где поискать красивые конфиги nginx или как сделать красивым мой?
Многоуважаемые, как решить задачи логирования и красивой организации конфигов nginx, когда адреса и с префиксом www/ftp/mysql… и без него хочется логировать в один файл в одной папке под заданный набор хостов?
upstream vserver_pool { server 100.100.100.100:80; } root /var/log/nginx/; access_log /var/log/nginx/$host-access.log; error_log /var/log/nginx/error.log; server { listen 80; server_name www.domain1.tld; return 301 domain1.tld$request_uri; root /var/log/nginx/$host/; access_log /var/log/nginx/$host/$host-access.log; }… server { listen 80; server_name www.domain100500.tld; return 301 domain100500.tld$request_uri; root /var/log/nginx/$host/; access_log /var/log/nginx/$host/$host-access.log; }
Проблема красивой организации конфигов всплывают, когда есть потребность к каждому хосту прибавить набор идентичных правил проксирования. 10 раз добавить идентичный кусок:
server { listen 80 default_server; location ~ /\.ht { deny all; } location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } location / { proxy_pass vserver_pool; proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; proxy_redirect off; proxy_buffering off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
И 5 раз — не идентичный. Возникает проблема с иерархией. Я полагал, что частный случай конфига будет иметь приоритет, однако все, чего я добиваюсь — дублирование логов, в случае наличия префикса www в имени хоста.
upstream vserver_pool { server 100.100.100.100:80; } root /var/log/nginx/; access_log /var/log/nginx/$host-access.log; error_log /var/log/nginx/error.log; server { listen 80; server_name www.domain1.tld; return 301 domain1.tld$request_uri; root /var/log/nginx/$host/; access_log /var/log/nginx/$host/$host-access.log; }… server { listen 80; server_name www.domain100500.tld; return 301 domain100500.tld$request_uri; root /var/log/nginx/$host/; access_log /var/log/nginx/$host/$host-access.log; }
Проблема красивой организации конфигов всплывают, когда есть потребность к каждому хосту прибавить набор идентичных правил проксирования. 10 раз добавить идентичный кусок:
server { listen 80 default_server; location ~ /\.ht { deny all; } location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } location / { proxy_pass vserver_pool; proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; proxy_redirect off; proxy_buffering off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
И 5 раз — не идентичный. Возникает проблема с иерархией. Я полагал, что частный случай конфига будет иметь приоритет, однако все, чего я добиваюсь — дублирование логов, в случае наличия префикса www в имени хоста.
Похожие публикации
Не пускают на собственные сайты
Как защититься от хулигана?
помогите советом нубу
Вопрос по нагрузке форума phpBB на хостинг(на ядро cpu) ?
CMS DLE и хостинг sWeb.ru
Нет комментариев