1 установка Laravel с 2 TLD - PullRequest
0 голосов
/ 15 мая 2018

Я разрешаю своим клиентам загружать большие файлы.Поскольку я использую Cloudflare, все, что превышает 100 МБ, отклоняется, что бесполезно.

Поэтому я думаю о том, чтобы переключить действие формы загрузки с mysite.com/upload на mysite.net/upload.Таким образом, я использую доменное имя, которое не проходит через Cloudflare, поэтому размеры файлов не будут ограничены.

Я настроил mysite.net как сайт в Forge для зеркалирования mysite.comустановив корневой каталог в nginx, чтобы он указывал на текущую папку mysite.com.Так что теперь, когда кто-то переходит на mysite.net, он видит содержимое mysite.com.

К сожалению, mysite.net теперь открыт для DDOS-атак, поскольку он не проходит через Cloudflare.

Так что я хотел бы сделать так, чтобы mysite.net/upload был единственным маршрутом, открытым в этом домене, и чтобы он был доступен только с моих серверов с балансировкой нагрузки.

это возможно, и если так: как мне это сделать?

Я исследовал это и не нашел ответа, который мне подходит, наиболее распространенный сценарий - использование поддоменов, а это не так.применимо в моей ситуации.

1 Ответ

0 голосов
/ 16 мая 2018

разобрался;Я решил использовать поддомен, так как это было проще.

Я зашел в Cloudflare, добавил поддомен upload.example.com (конечно, использую ваш реальный домен), чтобы трафик мог попасть на него, а затем отключил защиту длясубдомен, чтобы можно было загружать большие файлы.

Я обновил свой .env файл и добавил переменную SESSION_DOMAIN, чтобы сеанс пользователя работал в доменах example.com и upload.example.com.

SESSION_DOMAIN=".example.com"

Обратите внимание, что домен начинается с точки, а значение заключено в кавычки.Если вы опустите кавычки, ваши пользователи не смогут войти в ваше приложение, и если вы используете Envoyer, опущение кавычек нарушит расшифровку при редактировании файла .env.

Затем я добавил новую группу в свойфайл маршрутов для обработки трафика на поддомен.Я добавил маршрут для перенаправления всего трафика GET обратно на исходный сайт (https://example.com) и добавил маршрут POST для обработки загрузок.

Route::group(['domain' => 'upload.example.com'], function () {
    Route::get('/', function () {
        return redirect(url('https://example.com'));
    });

    Route::post('upload', 'UploadController@store')->middleware('throttle:4,1');
});

И затем в моей форме ...

<form action="https://upload.example.com/upload" enctype="multipart/form-data">

Наконец, я очистил кеш и куки моего браузера, затем зашел на сайт и загрузил большой файл!:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...