ПРОЕКТЫ 


  АРХИВ 


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 ?



2010/4/27 -=HaRius=- <rh@xxxxxxxxxx>:
> хм...
>
> server {
> ...
> location / {
> ...
> proxy_intercept_errors off; # явно, если on - 404 явная nginx'а страница
> error_page 404 =200 /404; # firebug все равно показывает 404
> ...
> }
> }
>

У вас нет location = /404.

То есть вы хотите, чтобы при 404 от бекенда, nginx лез опять к бекенду
с урлом /404 и вернул ответ как 200 ОК?

То есть ту страницу, которую бекенд первый раз отдаёт с кодом 404 вы
хотите просто проигнорировать? Не проще ли сразу вернуть там нужный
контент?

> 27 апреля 2010 г. 15:49 пользователь Igor Sysoev <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
>>
>>
>> --
>> Игорь Сысоев
>> http://sysoev.ru
>>
>> _______________________________________________
>> 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
>
>
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.