Криво настроен nginx?

12
B
На сайте с 05.03.2007
Offline
171
1154

Очередная порция дурацки вопросов, от меня ))

Картинки отдаются через нгинкс (в заголовках ответа вижу Server nginx/0.8.28)

Не понятно следующее, если нгинкс работает правильно (запросы поступают на него изначально) то почему в access логах сайтов, присутсвуют эти же запросы к картинкам?

То есть получается запросы все же apache принимал?

M
На сайте с 16.09.2009
Offline
278
#1

ну может nginx просто проксирует запросы к апачу?

конфиг nginx показать можно?

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
Himiko
На сайте с 28.08.2008
Offline
560
#2
Не понятно следующее, если нгинкс работает правильно (запросы поступают на него изначально) то почему в access логах сайтов, присутсвуют эти же запросы к картинкам?

Потому что nginx пишет в логи Apache.

К примеру, панель ISPManager так его настраивает, чтобы все запросы учитывались, а не только от Apache.

Профессиональное администрирование серверов (https://systemintegra.ru). Круглосуточно. Отзывы (/ru/forum/834230) Лицензии (http://clck.ru/Qhf5) ISPManager,VDSManager,Billmanager e.t.c. по низким ценам.
M
На сайте с 16.09.2009
Offline
278
#3
Himiko:
К примеру, панель ISPManager так его настраивает, чтобы все запросы учитывались, а не только от Apache.

кстати, да. одна из идиотских идей в ISPManager :D

Himiko
На сайте с 28.08.2008
Offline
560
#4
кстати, да. одна из идиотских идей в ISPManager

Одна их умных идей, котрая позволит корректно считать трафик по сайтам при установленном nginx, а так же чтобы awstats/webalizer более корректно отображали статистику.

B
На сайте с 05.03.2007
Offline
171
#5

Спасибо за ответы, да на вдс-ке стоит ispmanager.

Можете еще конфиг прокомментировать, меня очень смущает воркер_прогресс 2, хотя проц у вдс 4-ядерный и в некоторых статьях советуют ставить его по кол-во ядер.


user nginx;
worker_processes 2;

error_log /var/log/nginx/error.log;

pid /var/run/nginx.pid;


events {
worker_connections 1024;
use epoll;
}


http {
include /etc/nginx/mime.types;
default_type application/octet-stream;

sendfile on;
#tcp_nopush on;

keepalive_timeout 65;

#sendfile on;
#tcp_nopush on;
#tcp_nodelay on;
#server_tokens off;
#gzip on;
#gzip_static on;
#gzip_comp_level 5;
#gzip_min_length 1024;
#keepalive_timeout 65;
#limit_zone myzone $binary_remote_addr 10m;

#Load config files from the /etc/nginx/conf.d directory
#include /etc/nginx/conf.d/*.conf;



# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;

# location / {
# root html;
# index index.html index.htm;
# }
#}


# HTTPS server
#
#server {
# listen 443;
# server_name localhost;

# ssl on;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;

# ssl_session_timeout 5m;

# ssl_protocols SSLv2 SSLv3 TLSv1;
# ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
# ssl_prefer_server_ciphers on;

# location / {
# root html;
# index index.html index.htm;
# }
#}

client_max_body_size 16m;
server {
listen 85.25.217.17:80;
server_name mysite.ru www.mysite.ru;
rewrite ^(/manager/.*)$ https://$host$1 permanent;
location ~* ^/(webstat/|awstats|webmail/|myadmin/|manimg/) {
proxy_pass http://mysite.ru:8080;
proxy_redirect http://mysite.ru:8080/ /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
location / {
proxy_pass http://mysite.ru:8080;
proxy_redirect http://mysite.ru:8080/ /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$ {
root /var/www/joopel/data/www/mysite.ru;
access_log /var/www/httpd-logs/mysite.ru.access.log;
error_page 404 = @fallback;
}
location @fallback {
proxy_pass http://mysite.ru:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
}
}
M
На сайте с 16.09.2009
Offline
278
#6
Himiko:
Одна их умных идей, котрая позволит корректно считать трафик по сайтам при установленном nginx, а так же чтобы awstats/webalizer более корректно отображали статистику.

так через nginx трафик все-равно идет. что мешает логгировать _все_ там?

идею писать в один лог-файл _разными_ демонами - умной назвать нельзя.

Brut, судя по конфигу - у вас именно случай, о котором писал Himiko.

L
На сайте с 07.07.2008
Offline
89
#7

в блоке

location ~* ^.+.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$ {
root /var/www/joopel/data/www/mysite.ru;
access_log /var/www/httpd-logs/mysite.ru.access.log;
error_page 404 = @fallback;
}

прописано что если картинка не найдена то пересылать запрос в апач

error_page 404 = @fallback;

B
На сайте с 05.03.2007
Offline
171
#8

lingod, а как предлагаешь обрабатывать такие картинки и файлы?

Himiko
На сайте с 28.08.2008
Offline
560
#9
прописано что если картинка не найдена то пересылать запрос в апач
error_page 404 = @fallback;

Это сделано, чтобы картинки, которые генерируются скриптами (к примеру капча) отображались корректно. Т.е. если nginx картинку не найдёт, то перенаправит запрос Apache.

Никакого отношения к теме топика это не имеет.

ТС, если вы считаете, что воркеров не достаточно, то увеличьте.

M
На сайте с 16.09.2009
Offline
278
#10
lingod:
прописано что если картинка не найдена то пересылать запрос в апач
error_page 404 = @fallback;

это можно поправить if-ом внутри location со статикой.

в лог /var/www/httpd-logs/mysite.ru.access.log - 404 ошибка попадает _дважды_: один раз

пишет nginx (именно со статусом 404) - другой раз - апач, которому в итоге

проксировали запрос (статус может и другим быть).

Brut, скорее всего "оптимизация" с раздачей статики вам нафиг не сдалась

и проще все сразу отправить на бакенд (оставить только "location /").

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий