inside22
@inside22

Как сделать в NGINX первое найденное правило последним?

Доброго вечера.

У меня есть адрес domain.com/blog при обращении к котому я при помощи proxy_pass обращаюсь к второму серверу.
На втором сервере у меня Wordpress на домене blog.domain.com.

Моя проблема заключается что при обращении к domain.com/blog контент с домена blog.domain.com, а вот со статическими файлами проблема.

При обращении к адресу:
https://www.domain.com/blog/wp-content/themes/twen...

идет обращение к первому серверу, я по access.log проверял, а мне надо чтобы и этот запрос перенаправлялся на второй сервер.

Как я понимаю эта проблема возникла из-за правила которого обрабатывает статические файлы.

Мой вопрос заключается в следующем: такое поведение является нормальным?
Как сделать так, чтобы абсолютно все обращения к https://www.domain.com/blog/* перенаправлялись на второй сервер при помощи proxy_pass?

server {
	listen 443;
	root /home/domain/www; 
	index index.php;
	server_name www.domain.com;

	location /blog {		
		proxy_set_header X-Real-IP  $remote_addr;
		proxy_set_header X-Forwarded-For $remote_addr;
		proxy_set_header Host $host;
		proxy_pass http://blog.domain.com:80;
	}	

	location ~* \.(gif|jpg|jpeg|png|ico|bmp|wmv|3gp|avi|mpg|mpeg|mp4|flv|mp3|mid|js|css|woff|exe|eot|svg|ttf)$ {
		root /home/domain/www;
		try_files $uri @img_proxy;
	}

	location @img_proxy {
		rewrite ^(.*)$ /index.php?$1;		
	}


	location / {
		try_files $uri $uri/ /index.php?/$request_uri;
	}

	location ~ \.php$ {
		fastcgi_pass unix:/var/run/php5-fpm.sock;
		fastcgi_index index.php;
		include fastcgi_params;
	}
}
  • Вопрос задан
  • 129 просмотров
Пригласить эксперта
Ответы на вопрос 3
last

stops processing the current set of ngx_http_rewrite_module directives and starts a search for a new location matching the changed URI;
Ответ написан
Комментировать
inside22
@inside22 Автор вопроса
Александр Федотов проблема заключается в том, что я не использую rewrite, я использую proxy_pass. Где мне тут LAST или BREAK прописывать?

location /blog {		
    proxy_set_header X-Real-IP  $remote_addr;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header Host $host;
    proxy_pass http://blog.domain.com:80;
  }
Ответ написан
Комментировать
Lynn
@Lynn
nginx, js, css
Читать документацию.

location ^~ /blog/ { ...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы