Re: не работает error page ?
-=HaRius=-
rh на nobrend.ru
Вт Апр 27 17:10:04 MSD 2010
location /404 - он на бекэнде.
описал его явно :
location / {
proxy_pass http://localhost:8080;
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 500m;
proxy_intercept_errors off;
error_page 404 =200 /404;
}
location =/404 {
proxy_pass http://localhost:8080;
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;
}
при детальном рассмотрении firebug'ом виден 404 код ошибки =\
задача тривиальная там где переход по старой ссылке вернуть просто код 200,
что бы поисковики не потерли ссылки, бекэнд правильно показывает страницу по
404, но с кодом 404, нужно что бы нгинкс подменил код 404 возращенный
бекэндом
на 200
27 апреля 2010 г. 16:45 пользователь Андрей Василишин
<a.vasilishin at kpi.ua>написал:
> -=HaRius=- пишет:
>
>> хм...
>>
>> server {
>> ...
>> location / {
>> ...
>> proxy_intercept_errors off; # явно, если on - 404 явная nginx'а страница
>> error_page 404 =200 /404; # firebug все равно показывает 404
>> ...
>> }
>> }
>>
>> 27 апреля 2010 г. 15:49 пользователь Igor Sysoev <igor at sysoev.ru <mailto:
>> igor at sysoev.ru>> написал:
>>
>>
>> On Tue, Apr 27, 2010 at 06:29:27AM -0400, harius wrote:
>>
>> > в связи с модернизацией движка сайта нужно отвечать поисковика
>> 200 на запрошенную старую ссылку.
>> > вроде все просто, смотрим в доку и пишем:
>> >
>> > error_page 404 =200 /404; # /404 - урл отдает спец
>> страничку с кодом 200
>> >
>> > интегрируем в конфиг:
>> >
>> > limit_zone myzone $binary_remote_addr 10m;
>> > proxy_cache_path /home/xxx/domains/xxx/cache/proxy levels=1:2
>> keys_zone=static:250m;
>> > proxy_cache_path /home/xxx/domains/xxxx/cache/maps/jams
>> levels=2:2 keys_zone=jams:250m inactive=15m;
>> >
>> > server {
>> > listen xxx:80;
>> > server_name xxx;
>> >
>> > limit_conn myzone 10;
>> >
>> > access_log /var/log/nginx/domains/xxx.log combined;
>> >
>> > charset utf-8;
>> >
>> > set $tile_root /home/xxx/domains/xxx/cache/maps/tiles;
>> > set $proxied_uri http://xxx;
>> > set $xmlrpc_proxied_uri http://xxx/points;
>> > set $editpoints_proxied_uri http://xxx/poimanager;
>> >
>> > location ~* .*\/map\/navitms.fcgi$ {
>> > set $fcgi_uri $uri;
>> >
>> > if ($args ~*
>>
>> "^t=([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2}),([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2}),([0-9]{2})$")
>> {
>> > set $tile_path $1/$5/$2/$6/$3/$7/$4/$8/$9.png;
>> > rewrite ^.*$ /map/tiles/$tile_path last;
>> > }
>> > if ($args ~* "^(j=[0-9]{8},[0-9]{8},[0-9]{2})(,[0-9]+)?$") {
>> > set $args $1;
>> > rewrite ^.*$ /map/jams/ last;
>> > }
>> >
>> > return 404;
>> > }
>> >
>> > location ~ (.*/img/poi/).*\.gif$ {
>> > root /home/xxx/domains/xxx/html;
>> > try_files $uri $1/1.gif =404;
>> > }
>> >
>> > location /navitel/theme/navitel {
>> > root /home/xxx/domains/xxx/html/map;
>> > }
>> >
>> > location /map {
>> > index manage.html;
>> > root /home/xxx/domains/xxx/html;
>> > }
>> >
>> > location /map/points {
>> > proxy_cache off;
>> > proxy_pass $xmlrpc_proxied_uri?$args;
>> > }
>> >
>> > location /map/poimanager {
>> > proxy_cache off;
>> > proxy_pass $editpoints_proxied_uri?$args;
>> > }
>> >
>> > location @proxy_tiles {
>> > proxy_pass $proxied_uri$request_uri;
>> > proxy_store_access user:rw group:rw;
>> > proxy_store $tile_root/$tile_path;
>> > }
>> >
>> > location ^~ /map/tiles/ {
>> > internal;
>> > alias $tile_root/;
>> > if_modified_since before;
>> > try_files $uri @proxy_tiles;
>> > }
>> >
>> > location = /map/jams/ {
>> > internal;
>> > proxy_cache_valid 200 302 5m;
>> > proxy_cache jams;
>> > proxy_pass $proxied_uri$fcgi_uri?$args;
>> > }
>> >
>> > location / {
>> > proxy_pass http://localhost:8080;
>> > 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 500m;
>> > # error_page 404 = /404; # все равно выдает 404 код
>>
>>
>> http://sysoev.ru/nginx/docs/http/ngx_http_proxy_module.html#proxy_intercept_errors
>>
>>
>>
> Покажите, где у Вас в конфиге описан локейшн location /404 { root... } ?
>
> --
> WBR, Andrey Vasilishin CDIG1-UANIC, CDIG1-RIPE
>
>
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://nginx.org/mailman/listinfo/nginx-ru
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20100427/243acc10/attachment-0001.html>
Подробная информация о списке рассылки nginx-ru