ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: не работает error page ?



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@xxxxxx> написал:
-=HaRius=- пишет:
хм...

server {
...
location / {
...
proxy_intercept_errors off; # явно, если on - 404 явная nginx'а страница
error_page 404 =200 /404; # firebug все равно показывает 404
...
}
}

27 апреля 2010 г. 15:49 пользователь Igor Sysoev <igor@xxxxxxxxx <mailto:igor@xxxxxxxxx>> написал:


   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@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.