• Как сделать доступ поисковым роботам только на то, что нужно в robots.txt?

    @programmer403
    Что конкретно Вам не понятно? Везде написано одно и тоже:

    disallow
    Директива disallow определяет конкретные пути, которые должны быть недоступны указанным поисковым роботам. Если путь не указан, она игнорируется.

    Использование:
    disallow: [path]

    allow
    Директива allow определяет пути, которые должны быть доступны указанным поисковым роботам. Если путь не указан, она игнорируется.

    Использование:
    allow: [path]

    запретить ВСЕ кроме тех страниц что я укажу
    :
    allow: /url-1.html
    allow: /url-2.html
    allow: /2020-08-28/*
    disallow: /

    Вот вам для примера указываем полный путь на страницу в allow, вот она и будет разрешена,
    allow: /2020-08-28/* - все страницы в этой папке будут разрешены для индексации,
    disallow: / - Запретить ВСЕ
    Ответ написан
    Комментировать
  • CISCO - Как пробросить все порты на внутренний сервер ubuntu, чтобы был доступ по SSH или Telnet?

    @programmer403 Автор вопроса
    Решил проблему, добавив 22 порт в access-list
    ip nat inside source static tcp 192.168.0.124 22 белыйIP 22 extendable
    access-list 100 permit tcp any any eq 22
    Ответ написан
    Комментировать
  • Можно ли использовать кэш для авторизованных заголовком Bearer запросов NGINX?

    @programmer403
    app:
    # Cache for internal auth checks
    proxy_cache_path /usr/local/var/nginx/cache/auth levels=1:2 keys_zone=auth_cache:10m max_size=128m inactive=10m use_temp_path=off;
    # Cache for content
    proxy_cache_path /usr/local/var/nginx/cache/resx levels=1:2 keys_zone=content_cache:16m max_size=128m inactive=5m use_temp_path=off;
    server {
        listen 443 ssl http2;
        server_name ........;
    
        include /usr/local/etc/nginx/include-auth-internal.conf;
    
        location /api/v1 {
            # Auth magic happens here
            auth_request         /auth;
            auth_request_set     $user $upstream_http_X_User_Id;
            auth_request_set     $customer $upstream_http_X_Customer_Id;
            auth_request_set     $permissions $upstream_http_X_Permissions;
    
            # The backend app, once Nginx has performed internal auth.
            proxy_pass           http://127.0.0.1:5000;
            proxy_set_header     X-User-Id $user;
            proxy_set_header     X-Customer-Id $customer;
            proxy_set_header     X-Permissions $permissions;
    
            # Cache content
            proxy_cache          content_cache;
            proxy_cache_key      "$request_method-$request_uri";
        }
        location /api/v1/Logout {
            auth_request         /auth/logout;
        }
    
    }


    auth:
    # Called before every request to backend
    location = /auth {
        internal;
        proxy_cache             auth_cache;
        proxy_cache_methods     GET HEAD POST;
        proxy_cache_key         "$cookie_token";
        # Valid tokens cache duration is set by backend returning a properly set Cache-Control header
        # Invalid tokens are shortly cached to protect backend but not flood Nginx cache
        proxy_cache_valid       401 30s;
        # Valid tokens are cached for 5 minutes so we can get the backend to re-validate them from time to time
        proxy_cache_valid       200 5m;
        proxy_pass              http://127.0.0.1:1234/auth/_Internal;
        proxy_set_header        Host ........;
        proxy_pass_request_body off;
        proxy_set_header        Content-Length "";
        proxy_set_header        Accept application/json;
    }
    
    # To invalidate a not expired token, use a specific backend endpoint.
    # Then we cache the token invalid/401 response itself.
    location = /auth/logout {
        internal;
        proxy_cache             auth_cache;
        proxy_cache_key         "$cookie_token";
        # Proper caching duration (> token expire date) set by backend, which will override below default duration
        proxy_cache_valid       401 30m;
        # A Logout requests forces a cache refresh in order to store a 401 where there was previously a valid authorization
        proxy_cache_bypass      1;
    
        # This backend endpoint always returns 401, with a cache header set to the expire date of the token
        proxy_pass              http://127.0.0.1:1234/auth/_Internal/Logout;
        proxy_set_header        Host ........;
        proxy_pass_request_body off;
    }
    Ответ написан
  • Как зациклить много css-анимаций как одну?

    @programmer403
    Про infinite слышали?
    К примеру:
    animation-iteration-count:infinite;
    Ответ написан