LINUX.ORG.RU
ФорумAdmin

Проблемы с apache+nginx

 


0

2

Приветствую, уважаемые!

Столкнулся с такой проблемой, описываю суть.

Есть домашний хостинг для тестирования всяких штук, движков и т.д.

Всё это дело управляется apache+nginx+mysql. Когда ставлю некоторые движки, во внутрении директории сайта. Например сайт.ру/джумла и т.д.

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

Проблема заключается в том, что в поддиректриях сайта, я получаю только динамический контент, т.е. только что отдает апач, текстовые поля, текст какие-то таблици и т.д. Я что-то не докрутил в конфиге nginx? Или же проблема в чем-то другом, в том же .htaccess или apache.

server {
listen *:80; ## listen for ipv4
server_tokens off;
server_name 192.168.100.2;
access_log /var/log/nginx/access.log;


 location / {
 include /etc/nginx/mynaxsi.rules;
 proxy_pass http://192.168.100.2:8080/;
 proxy_set_header Host $host;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Forwarded-For $remote_addr;
 proxy_connect_timeout 120;
 proxy_send_timeout 120;
 proxy_read_timeout 180;

 }

 location ~* \.(jpg|jpeg|gif|png|ico|css|bmp|swf|js|html|txt)$ {
 access_log off;
 expires 30d;
 root /var/www;

 }

 location ~ /\.ht {
	deny all;

 }
location = /wp-admin/ {
proxy_pass http://192.168.100.2:8080;
proxy_redirect http://192.168.100.2:8080/ /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
poxy_set_header X-Real-IP $remote_addr;


}
NameVirtualHost 192.168.100.2
ServerName 192.168.100.2
<VirtualHost *:8080>
	ServerAdmin webmaster@localhost
	ServerName 192.168.100.2
	DocumentRoot /var/www
	<Directory />
		Options All
		AllowOverride All
	</Directory>
	<Directory /var/www/>
		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 None
		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

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

<Directory /var/www/cgi-bin>
     Options ExecCGI
Order allow,deny
    Allow from all
      </Directory>

</VirtualHost>

conf.d

Тут немного покурил маны. Может дело в файлах в conf.d? Возможно стоит сюда добавить что-то вроде порта 80? т.к. похоже в эти директории сервер лезет по порту апаче, в место nginx. Либо что-то указать в основном конфиге, чтобы на директории указанные в файлах в conf.d/ конфиг нгинкса наследовался. Привожу содержимое:

<Directory /var/www/owncloud/data/>
  AllowOverride All
</Directory>

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

Проблема заключается в том, что в поддиректриях сайта, я получаю только динамический контент, т.е. только что отдает апач, текстовые поля, текст какие-то таблици и т.д.

раза три перечитал пока понял.... у тебя что nginx статику не отдает?

у нжинкса есть права на чтение из /var/www ? смотри что акцес логе у нжинка что у апача, и вообще оно попадает под правило location ~* \.(jpg|jpeg|gif|png|ico|css|bmp|swf|js|html|txt)$ ?

попробуй вместо

location ~* \.(jpg|jpeg|gif|png|ico|css|bmp|swf|js|html|txt)$ ?

такое

location ~* ^.*\.(jpg|jpeg|gif|png|ico|css|bmp|swf|js|html|txt)$ ?

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

Смысл, в том. Что видимо поддиректории сайта указанные в конфигах conf.d/ не обрабатываются по каким-то причинам nginx а отдаются сразу apache.

Конфиг подправил. сейчас проверю.

Blasta
() автор топика
Ответ на: комментарий от Komintern
2012/11/29 21:28:24 [error] 25607#0: *16 open() "/var/www/owncloud/remote.php/core.css" failed (20: Not a directory), client: 192.168.100.200, server: blast.yasnet.ru, request: "GET /owncloud/remote.php/core.css HTTP/1.1", host: "blast.yasnet.ru", referrer: "http://blast.yasnet.ru/owncloud/"
2012/11/29 21:28:24 [error] 25607#0: *18 open() "/var/www/owncloud/remote.php/core.js" failed (20: Not a directory), client: 192.168.100.200, server: blast.yasnet.ru, request: "GET /owncloud/remote.php/core.js HTTP/1.1", host: "blast.yasnet.ru", referrer: "http://blast.yasnet.ru/owncloud/"
2012/11/29 21:28:26 [error] 25607#0: *15 open() "/var/www/owncloud/remote.php/core.css" failed (20: Not a directory), client: 192.168.100.200, server: blast.yasnet.ru, request: "GET /owncloud/remote.php/core.css HTTP/1.1", host: "blast.yasnet.ru", referrer: "http://blast.yasnet.ru/owncloud/"
2012/11/29 21:28:26 [error] 25607#0: *17 open() "/var/www/owncloud/remote.php/core.js" failed (20: Not a directory), client: 192.168.100.200, server: blast.yasnet.ru, request: "GET /owncloud/remote.php/core.js HTTP/1.1", host: "blast.yasnet.ru", referrer: "http://blast.yasnet.ru/owncloud/"
2012/11/29 21:28:27 [error] 25607#0: *16 open() "/var/www/owncloud/remote.php/core.css" failed (20: Not a directory), client: 192.168.100.200, server: blast.yasnet.ru, request: "GET /owncloud/remote.php/core.css HTTP/1.1", host: "blast.yasnet.ru", referrer: "http://blast.yasnet.ru/owncloud/"
2012/11/29 21:28:27 [error] 25607#0: *15 open() "/var/www/owncloud/remote.php/core.js" failed (20: Not a directory), client: 192.168.100.200, server: blast.yasnet.ru, request: "GET /owncloud/remote.php/core.js HTTP/1.1", host: "blast.yasnet.ru", referrer: "http://blast.yasnet.ru/owncloud/"
2012/11/29 21:28:27 [error] 25607#0: *17 open() "/var/www/owncloud/remote.php/core.css" failed (20: Not a directory), client: 192.168.100.200, server: blast.yasnet.ru, request: "GET /owncloud/remote.php/core.css HTTP/1.1", host: "blast.yasnet.ru", referrer: "http://blast.yasnet.ru/owncloud/"
2012/11/29 21:28:27 [error] 25607#0: *144 open() "/var/www/owncloud/remote.php/core.js" failed (20: Not a directory), client: 192.168.100.200, server: blast.yasnet.ru, request: "GET /owncloud/remote.php/core.js HTTP/1.1", host: "blast.yasnet.ru", referrer: "http://blast.yasnet.ru/owncloud/"
Blasta
() автор топика
Ответ на: комментарий от Blasta

ааа! так твоя joomla (или кто там у тебя) по-идиотски реврайтит все запросы на свой пыхпых-скрипт. чтобы это дерьмо работало, обьяви еще одну локацию:

location @apache {
 proxy_pass http://192.168.100.2:8080/;
 proxy_set_header Host $host;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Forwarded-For $remote_addr;
 proxy_connect_timeout 120;
 proxy_send_timeout 120;
 proxy_read_timeout 180;
}
И поправь:
location ~* \.(jpg|jpeg|gif|png|ico|css|bmp|swf|js|html|txt)$ {
 access_log off;
 expires 30d;
 root /var/www;
 try_files $uri @apache;
}

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

Конфиг апач и нгинкс лежат где обычно, т.е. /etc/apache2/sites-available

/etc/nginx/sites-available

Все файлы в корне www принадлежат www-data, как и нужно

chown -R www-data:www-data /var/www делал.

Конфиг с содержимым

<Directory /var/www/owncloud/data/>
  AllowOverride All
</Directory>

Лежит в conf.d/

nginx вроде правильно работает от www-data:

ps -ef | fgrep nginx
root      4302 22974  0 21:35 pts/0    00:00:00 fgrep --color=auto nginx
root     25606     1  0 21:27 ?        00:00:00 nginx: master process /usr/sbin/nginx
www-data 25607 25606  0 21:27 ?        00:00:00 nginx: worker process
www-data 25608 25606  0 21:27 ?        00:00:00 nginx: worker process
www-data 25609 25606  0 21:27 ?        00:00:00 nginx: worker process
www-data 25610 25606  0 21:27 ?        00:00:00 nginx: worker process
www-data 25611 25606  0 21:27 ?        00:00:00 nginx: cache manager process

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

Смотри конфиг owncloud у тебя судя по всему в нем проблема. http://blast.yasnet.ru/owncloud/core/js/config.js . А насчет phpmyadmin, у тебя видать его конфиг в nginx не настроен, а файлы он пытается брать по умолчанию из /var/www. Скинь пару конфигов nginx, из sites-available.

Tark ★★
()
Ответ на: комментарий от Komintern
Restarting nginx: nginx: [emerg] "proxy_pass" cannot have URI part in location given by regular expression, or inside named location, or inside "if" statement, or inside "limit_except" block in /etc/nginx/sites-enabled/default:58

Поправил. Выдало ошибку при рестарте.

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

Там пусто, только default. я их первом посте привел. phpmyadmin и т.д. описаны в conf.d/

А как научить nginx правильно черпать файлы например для phpmyadmin?

Добавить ему в локейшн /usr/share/phpmyadmin/? Или создать для него другой новый конфиг в sites-available?

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

Проще всего отдельный локейшн для его статики добавить да.

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

А вообще удобнее на отдельный поддомен выкинуть.

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

Конфиги sites-available/default

апача и нгинкса полностью приведены в первом посте. Сейчас покажу текущий:

server {

 listen *:80; ## listen for ipv4

 server_tokens off;

 server_name blast.yasnet.ru;

 access_log /var/log/nginx/access.log;



 # Перенаправление на back-end

 location / {

# include /etc/nginx/mynaxsi.rules;

 proxy_pass http://192.168.100.2:8080/;

 proxy_set_header Host $host;

 proxy_set_header X-Real-IP $remote_addr;

 proxy_set_header X-Forwarded-For $remote_addr;

 proxy_connect_timeout 120;

 proxy_send_timeout 120;

 proxy_read_timeout 180;

 }

 # Статическиое наполнение отдает сам nginx
 # back-end этим заниматься не должен

location ~* \.(jpg|jpeg|gif|png|ico|css|bmp|swf|js|html|txt)$ {
 access_log off;
 expires 30d;
 root /var/www;
# try_files $uri @apache;
 }

 location ~ /\.ht {
	deny all;

 }
location = /wp-admin/ {
			proxy_pass http://192.168.100.2:8080;
			proxy_redirect http://192.168.100.2:8080/ /;
			proxy_set_header Host $host;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_set_header X-Forwarded-Proto $scheme;
			proxy_set_header X-Real-IP $remote_addr;
		}
#location @apache {
# proxy_pass http://192.168.100.2:8080/;
# proxy_set_header Host $host;
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header X-Forwarded-For $remote_addr;
# proxy_connect_timeout 120;
# proxy_send_timeout 120;
# proxy_read_timeout 180;
# }
}

Закомментил, то что ты выложил. Ибо не запускалось.

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

58 строка

это

#location @apache {
# [b]proxy_pass http://192.168.100.2:8080/;[/b]
# proxy_set_header Host $host;
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header X-Forwarded-For $remote_addr;
# proxy_connect_timeout 120;
# proxy_send_timeout 120;
# proxy_read_timeout 180;
# }

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

мне только одному кажется что проблемы апача с нжинксом нет?

Fast-CGI, php-frm

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

Щас закомменчу. Убрал, тоже самое, когда расскоментил, то что ты посоветовал. Опять 58 строка.

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

незачто. сам как видишь завтыкал за этот слеш, уже ловил такую граблю.

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

Я тоже понял - у меня это регулярная проблема на одном из обслуживаемых приложений: там из статической морды доступны 4 разных джанго-прилаги, причем одна из них по /, остальные по /bla-bla/, и у каждой свой отдельный static/. Чутка в конфиге ошибешься - и статики нету.

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

Ля, чувак, ты его ПОНЯЛ?

Как???!

в детстве любил читать сэра артура конан дойля (:

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