LINUX.ORG.RU
ФорумAdmin

Проблемы с NGINX

 


0

1

Доброго дня!
Я немного в ступоре от непоняток. На VDS установлен сервак Debian-7+Apache2+Nginx. Вполне нормально установил 4 сайта, но вот 5 сайт отказывается нормально работать. Вот привожу конфиги, у всех сайтов абсолютно одинаковые, только названия сайтов разные:
Apache2

<VirtualHost *:81>
	ServerAdmin webmaster@my-site.ru
	ServerName my-site.ru
	ServerAlias www.my-site.ru
	<IfModule mpm_itk_module>
    AssignUserId root root
    </IfModule>

	DocumentRoot /home/my-site/html
	<Directory />
		Options FollowSymLinks
		AllowOverride All
	</Directory>
	<Directory /home/my-site/>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride All
		Order allow,deny
		allow from all
	</Directory>

	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
	<Directory "/usr/lib/cgi-bin">
		AllowOverride All
		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
		Order allow,deny
		Allow from all
	</Directory>

	ErrorLog ${APACHE_LOG_DIR}/error.log

	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	LogLevel warn

	CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Nginx
server {
    listen 80;
    server_name my-site.ru www.my-site.ru;

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;
	location ~* \.(jpg|jpeg|gif|png|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|tar|wav|bmp|rtf|swf|ico|flv|txt|xml|docx|xlsx)$ {
root /home/my-site/html/;
index index.html index.php;
access_log off;
expires 30d;
}
location ~ /\.ht {
deny all;
}

	location / {
        proxy_pass  http://127.0.0.1.ru:81/;
        include     /etc/nginx/proxy.conf;
    }
}

/etc/nginx/proxy.conf

proxy_redirect              off;
proxy_set_header            Host $host;
proxy_set_header            X-Real-IP $remote_addr;
proxy_set_header            X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size        10m;
client_body_buffer_size     128k;
proxy_connect_timeout       90;
proxy_send_timeout          90;
proxy_read_timeout          90;
proxy_buffer_size           4k;
proxy_buffers               4 32k;
proxy_busy_buffers_size     64k;
proxy_temp_file_write_size  64k;
proxy_set_header Connection close;
proxy_pass_header Content-Type;
proxy_pass_header Content-Disposition;
proxy_pass_header Content-Length;

Проблема 5-го сайта в том, что браузер не видит все файлы .css То есть если открыть исходный код и пощелкать там по ссылкам, то все файлы .js открываются(html соответственно), а вот .css отдают 404 ошибку. Из-за этого сайт выдается в браузере как голый HTML, без дизайна. И еще момент, если открыть журнал /var/log/nginx/error.log то там обращения к файлам .css показаны как «No such file or directory» и указан путь к другому хосту. То есть браузер ищет файлы .css в другом виртуальном хосте...
Но ведь 4 сайта работают вполне нормально на тех же условиях....!!?
И файлы картинок тоже ищутся в другом вирт. хосте.



Последнее исправление: rafaello (всего исправлений: 2)

А если, к примеру, «поменять местами», сайты?
Т.е. вот этот пятый сайт подгрузить первым или вторым - он запустится или нет?

Yustas ★★★★
()

А зачем апач? Я думал им не пользуется никто уже..

generator ★★★
()

Eсть такая проблема. Решается как правило либо добавлением mime.types в nginx, либо строгим разделением логики в nginx (зачем тогда тебе Apache2?) либо более костыльным указанием content-type для определенного каталога. Там есть две проблемы, когда как-раз как у тебя файлы ищутся на дефолтном vhost, или когда на браузер думает, что вместо css используются php файлы.
Изначально мне кажется, что это все-таки проблема с логикой, когда ты разделяешь vhost'ы, потому-что когда у тебя каждый vhost описан в разном файле все становится не только намного удобнее, но и проблемы вроде этой исчезают сами по себе.

anonymous_sama ★★★★★
()
Ответ на: комментарий от anonymous_sama

добавлением mime.types в nginx

в секции http{} присутствует строчки

include /etc/nginx/mime.types;
default_type application/octet-stream;
сам файл /etc/nginx/mime.types тоже имеется

строгим разделением логики в nginx

каждый виртуальный хост имеет отдельную папку и отдельные конфиги. Дефаултный так я вообще удалил.

более костыльным указанием content-type для определенного каталога

это надо проработать...

rafaello
() автор топика

Проверьте директиву root в ресурсном локейшне 5го сайта вашего nginx вхоста.

Я вижу там css в регексе, а вот Js и html там нету, они проксируются с:
proxy_pass http://127.0.0.1.ru:81/;

(кстати, зачем там .ru в конце?)

по факту css у вас отдает нгинкс из рут директори локейшна, а js идут с проксирования с апача. Сравните фолдеры.

BaBL ★★★★★
()
Ответ на: комментарий от BaBL

Проверьте директиву root в ресурсном локейшне 5го сайта вашего nginx вхоста

директива прописана верно. Перепробовал разные варианты, так

root /home/my-site/html;
и так
root /home/my-site/html/;
все одно и то же...

(кстати, зачем там .ru в конце?)

это просто опечатка, там все правильно

proxy_pass  http://127.0.0.1:81/;
Уже добавлял в ресурсный локейшн css|html|js , все равно файлы css и картинки ищутся в другом виртуальном хосте (судя по журналу ошибок nginx). Запарка какая то....

rafaello
() автор топика
Ответ на: комментарий от rafaello

Все разобрался.....
Спасибо всем!!!!
Ошибка была при составлении символьной ссылки...
Банальная ошибка..

rafaello
() автор топика
4 января 2016 г.
Ответ на: комментарий от rafaello

Помоги мне с этим!!!

У меня такая же ошибка. Все картинки и css берутся с другого виртуалхоста. Растолкуй на русском для чайников. Спасибо

pligin
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.