Django Heroku Robots.txt Исключить из производственного конвейера - PullRequest
0 голосов
/ 19 декабря 2018

Я тестирую конвейеры на Heroku.

У меня в конвейере есть промежуточное приложение и производственное приложение, и у меня возникли две проблемы, которые возникли одновременно, и поэтому могут или не могут быть взаимосвязаны....

Первым было, как запускать команды из моего интерфейса командной строки в моем промежуточном и производственном приложениях.

Это частично ответило на мой вопрос, но не полностью.Я обнаружил, что решение было установить мое промежуточное приложение по умолчанию : git config heroku.remote staging

Затем, чтобы запустить команды моего производственного приложения, я могу запустить команду, например: heroku run pythonmanage.py создает пользователя -a, --app your-app-name

Другая проблема, которая остается нерешенной, похоже, имеет решение для Ruby , как управлять моим robots.txt изподготовка к производству.Я хочу, чтобы мое промежуточное приложение было скрыто от индексации Google и т. Д., Но я не хочу, чтобы это было перенесено в мое производственное приложение (конечно).Возможно, мне вообще не следует использовать роботов?Любая помощь будет оценена ...

1 Ответ

0 голосов
/ 07 января 2019

В отсутствие каких-либо предложений я создал решение этой проблемы, а именно, как предотвратить индексацию промежуточного приложения Google при использовании конвейеров Heroku.

Проблема заключается в том, что, когда «продвижение» связанного репозитория из промежуточного этапа в стадию производства, казалось, что не было никакого очевидного способа предотвратить индексацию промежуточного приложения поисковыми системами, но при этом обеспечить индексацию вашего производственного приложения.

Я решил ограничить все представления через промежуточное ПО в соответствии с IP-адресом.Теперь только определенные IP-адреса могут получить доступ к постановочному приложению на героку.Возможно, это не самый лучший способ, но в отсутствие какого-либо другого ответа это, кажется, работает:

from django.core.exceptions import PermissionDenied
import os

def IPcheckMIddleware(get_response):

        def middleware(request, *args, **kwargs):
        herokuEnv = os.environ['IS_LIVE']
        if herokuEnv == 'FALSE':
            ip1=os.environ['IP_CHECKER']
            ip2=os.environ['IP_CHECKER_1']
            x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
            if x_forwarded_for:
                ips = x_forwarded_for.split(',')[-1]
            else:

                ips = request.META.get('REMOTE_ADDR')

            if ips in [ip1,ip2]:
                pass
            else:
                raise PermissionDenied
        else:
            pass

        response = get_response(request)


        return response

    return middleware      

Надеюсь, что это поможет любому с той же / подобной проблемой ...!

...