Настройка обратного прокси-сервера Nginx для Google.com на Ubuntu 16.04 VPS

  1. 1. Сделайте резервную копию файлов конфигурации Nginx
  2. 2. Добавить официальный репозиторий Nginx
  3. 3 Скачать пакет исходного кода Nginx
  4. 4. Загрузите два сторонних модуля
  5. 5. Отредактируйте правила компиляции Nginx
  6. 6. Запустите компиляцию!
  7. 7. Настройте обратный прокси-сервер Nginx
  8. оптимизация

В этом руководстве рассматриваются этапы настройки обратного прокси-сервера Nginx для поисковой системы Google.

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

Nginx является популярным веб-сервером, а также обратный прокси , Обратный прокси - это прокси от имени другого сервера. Если у вас есть VPS или облачный сервер в другой стране, который может свободно обращаться к Google.com, вы можете настроить обратный прокси-сервер Nginx для Google.com на своем VPS или облачном сервере. Когда вы вводите собственное доменное имя в адресную строку браузера, ваш обратный прокси-сервер будет получать результаты поиска Google.com и Google. VPS и облачный сервер очень доступный в наши дни ,

Чтобы настроить обратный прокси-сервер, нам понадобится модуль Nginx с именем ngx_http_google_filter_module, который создан, чтобы помочь с прокси Google.com. Этот модуль зависит от другого модуля с именем ngx_http_substitutions_filter_module. Оба они являются сторонними модулями с открытым исходным кодом, нам придется вручную скомпилировать Nginx с этими двумя модулями. После этого все, что нужно сделать, это добавить несколько простых директив в файл конфигурации блока сервера Nginx и перезагрузить.

Из этого туториала вы узнаете, как настроить его на Ubuntu 16.04 VPS. Итак, начнем.

1. Сделайте резервную копию файлов конфигурации Nginx

После компиляции и установки Nginx ваши исходные файлы конфигурации Nginx будут перезаписаны. Вы можете использовать следующую команду для резервного копирования основного файла конфигурации и файлов блоков сервера в ваш домашний каталог. Тильда представляет ваш домашний каталог.

cp /etc/nginx/nginx.conf /etc/nginx/sites-available/*.conf /etc/nginx/conf.d/*.conf ~

2. Добавить официальный репозиторий Nginx

В руководстве будет продемонстрирована компиляция последней основной версии Nginx, 1.11.2 на момент написания этой статьи. В репозитории Ubuntu 16.04 есть Nginx 1.10. Мы добавляем официальный репозиторий Nginx, как показано ниже.

Сначала принесите Nginx Ключ GPG и импортировать его в систему Ubuntu 16.04.

wget http://nginx.org/keys/nginx_signing.key sudo apt-key add nginx_signing.key

Затем создайте файл исходного списка для Nginx.

sudo nano /etc/apt/sources.list.d/nginx.list

Добавьте следующие две строки в файл. Строка deb-src позволяет нам загружать исходные пакеты Nginx с помощью команды apt source.

deb http://nginx.org/packages/mainline/ubuntu/ xenial nginx deb-src http://nginx.org/packages/mainline/ubuntu/ xenial nginx

Нажмите Ctrl + O, чтобы сохранить файл. Нажмите Ctrl + X, чтобы закрыть файл. Затем обновите локальный индекс пакета.

обновление sudo apt

Теперь официальный репозиторий Nginx добавлен в Ubuntu 16.04.

3 Скачать пакет исходного кода Nginx

Мы создадим каталог nginx в домашнем каталоге для хранения исходников Nginx, а затем перейдем в этот каталог.

mkdir ~ / nginx && cd ~ / nginx

Загрузите исходный пакет Nginx с помощью следующей команды:

sudo apt install dpkg-dev sudo apt источник nginx

Проверьте загруженные файлы.

ls ~ / nginx /

Выход:

nginx-1.11.2 nginx_1.11.2-1 ~ xenial.dsc nginx_1.11.2-1 ~ xenial.debian.tar.xz nginx_1.11.2.orig.tar.gz

4. Загрузите два сторонних модуля

Установите инструмент git.

sudo apt установить git

Клонируйте репозиторий ngx_http_google_filter_module и ngx_http_substitutions_filter_module из Github.

git clone https://github.com/cuber/ngx_http_google_filter_module.git git clone https://github.com/yaoweibin/ngx_http_substitutions_filter_module.git

5. Отредактируйте правила компиляции Nginx

Отредактируйте файл правил компиляции Nginx.

sudo nano ~ / nginx / nginx- 1.11.2 / debian / rules

Найдите раздел config.status.nginx: раздел config.env.nginx. Добавьте следующие две строки в CFLAGS. Замените имя пользователя вашим фактическим именем пользователя. Эти две строки указывают местоположение модулей ngx_http_google_filter_module и ngx_http_substitutions_filter_module.

--add-module = / home / имя пользователя / nginx / ngx_http_substitutions_filter_module \ --add-module = / home / имя пользователя / nginx / ngx_http_google_filter_module

Это руководство загружает эти два модуля в каталог / home / username / nginx. Если вы используете учетную запись root, замените / home / username на / root. потому что домашний каталог для пользователя root - / root.

Обратите внимание, что вам нужно добавить обратную косую черту после --with-ld-opt = "$ (LDFLAGS)", как показано на скриншоте ниже. Если вы этого не сделаете , добавленные вами строки –add-module будут игнорироваться при компиляции Nginx.

Если вы этого не сделаете , добавленные вами строки –add-module будут игнорироваться при компиляции Nginx

Теперь сохраните и закройте файл.

6. Запустите компиляцию!

Убедитесь, что вы находитесь в исходном каталоге Nginx.

cd ~ / nginx / nginx-1.11.2 /

Установите зависимости для сборки нашего deb-пакета Nginx.

sudo apt build-dep nginx

Теперь используйте следующую команду для сборки пакета deb.

sudo dpkg-buildpackage -b

Возьмите чашку кофе и подождите несколько минут. На 512M Digital Ocean Droplet этот процесс сборки занял около 3 минут. Когда это будет сделано, в каталоге ~ / nginx / будет 7 файлов deb. Нам нужно только установить пакет nginx_1.11.2-1 ~ xenial_amd64.deb или nginx_1.11.2-1 ~ xenial_i386.debpack, в зависимости от архитектуры вашей ОС. Другими являются пакет динамического модуля Nginx и пакет отладки. Вы также можете установить их, если хотите.

Если вы уже установили Nginx, пришло время удалить старую версию, а затем установить новую.

sudo apt удалить nginx nginx-common nginx-full cd ~ / nginx sudo dpkg -i nginx_1.11.2-1 ~ xenial_amd64.deb

или же

sudo dpkg -i nginx_1.11.2-1 ~ xenial_i386.deb

Теперь давайте запустим Nginx.

sudo systemctl start nginx

Если вы видите следующее сообщение об ошибке.

Не удалось запустить nginx.service: модуль nginx.service замаскирован.

Затем снимите маску с nginx и снова введите команду запуска.

sudo systemctl разоблачить nginx

Обратите внимание, что процесс Nginx может запускаться как пользователь nginx или www-data. Это можно изменить, отредактировав первую строку в файле /etc/nginx/nginx.conf. Просто убедитесь, что Nginx работает под тем же пользователем с PHP-FPM.

Теперь проверьте аргументы конфигурации Nginx.

sudo nginx -V

Если вы видите следующие тексты в конце, то эти два модуля успешно добавлены в Nginx.

--add-module = / home / имя пользователя / nginx / ngx_http_substitutions_filter_module --add-module = / home / имя пользователя / nginx / ngx_http_google_filter_module

7. Настройте обратный прокси-сервер Nginx

На этом этапе мы сначала получим и установим бесплатный сертификат TLS / SSL от Let's Encrypt, чтобы защитить то, что посетители ищут через наш обратный прокси-сервер. Затем мы настраиваем обратный прокси.

Это чрезвычайно важно! Великое брандмауэр Китая может заблокировать незашифрованное зеркало Google!

Создайте новый файл конфигурации блока сервера в /etc/nginx/conf.d. Замените search.your-domain.com предпочитаемым доменным именем.

sudo nano /etc/nginx/conf.d/ search.your-domain.com .conf

Вставьте следующие тексты в файл.

сервер {слушай 80; имя_сервера search.your-domain.com; root / usr / share / nginx / html; location ~ /.well-known/acme-challenge {разрешить все; }}

Сохраните и закройте файл. Протестируйте конфигурации Nginx и перезагрузите.

sudo nginx -t sudo systemctl перезагрузить nginx

Теперь в настройках DNS укажите ваше доменное имя на IP-адрес вашего Ubuntu 16.04 VPS. После этого установите клиент certbot из официального PPA. python-certbot-nginx - это плагин Certbot Nginx.

sudo apt установить общие свойства программного обеспечения sudo add-apt-repository ppa: certbot / certbot обновление sudo apt sudo apt установить certbot python-certbot-nginx

Затем мы можем получить и установить бесплатный сертификат TLS / SSL с этой однострочной. Замените адрес электронной почты и доменное имя.

sudo certbot - подлинник webroot - установщик nginx -w / usr / share / nginx / html / --agree-tos - прямой --staple-ocsp -d search.your-domain.com - отправить по электронной почте адрес

Теперь, если вы введете search.your-domain.com в своем веб-браузере, вы будете перенаправлены на HTTPS. Если вы используете Amazon Web Services (AWS) или Google Cloud Platform (GCP), убедитесь, что в настройках брандмауэра разрешен трафик HTTPS.

Давайте настроим Nginx в качестве обратного прокси-сервера для Google.com.

sudo nano /etc/nginx/conf.d/ search.your-domain.com .conf

Чтобы включить обратный прокси-сервер для Google, просто скопируйте и вставьте следующие директивы в раздел сервера.

резольвер 8.8.8.8; местоположение / {Google на; google_scholar on; }

Сохраните и закройте файл. Проверьте конфигурацию Nginx.

sudo nginx -t

Если тест пройден успешно, перезагрузите Nginx.

sudo systemctl перезагрузить nginx

Теперь в адресной строке браузера введите имя домена. Вы должны увидеть поиск Google! Попробуйте найти несколько слов. Вот мой обратный прокси для Google: https://search.linuxbabe.com , (Этот демо-обратный прокси больше не доступен публично.)

оптимизация

Google может обнаружить, что вы используете какую-то программу для поиска, если Nginx всегда связывается с тем же сервером Google. В случае обнаружения вам будет предложено ввести код подтверждения, чтобы подтвердить, что вы человек. Чтобы предотвратить обнаружение, мы можем добавить директиву upstream в конфигурационный файл блока сервера Nginx.

upstream www.google.com {server 172.217.0.228:443; сервер 172.217.3.4:443; сервер 172.217.4.196:443; сервер 172.217.4.132:443; сервер 216.58.219.228:443; сервер 216.58.192.4:443; сервер 216.58.194.196:443; сервер 216.58.218.100:443; сервер 216.58.219.36:443; сервер 216.58.194.68:443; сервер 216.58.221.132:443; сервер 216.58.221.228:443; сервер 216.58.203.4:443; сервер 216.58.197.100:443; сервер 216.58.199.100:443; } сервер {слушай 80; ........ ........} server {listen 443 ssl http2; ...... ......}

Вот некоторые из IP-адресов Google. Вы всегда можете найти рабочие IP-адреса, посмотрев записи A для специфических для страны доменов Google, например:

Сохраните ваш файл и перезагрузите Nginx. С этого момента Nginx будет получать результаты поиска Google с этих IP-адресов в циклическом порядке.

Чтобы отобразить Google на другом языке, используйте директиву google_language.

местоположение / {Google на; google_scholar on; google_language "en"; }

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

ar -> арабский bg -> болгарский ca -> каталанский zh-CN -> китайский (упрощенный) zh-TW -> китайский (традиционный) hr -> хорватский cs -> чешский da -> датский nl -> голландский en -> английский tl -> филиппинский fi -> финский fr -> французский de -> немецкий el -> греческий iw -> иврит hi -> хинди hu -> венгерский id -> индонезийский it -> итальянский ja -> японский ko -> корейский lv - > Латышский lt -> Литовский нет -> Норвежский фа -> Персидский pl -> Польский pt-BR -> Португальский (Бразилия) pt-PT -> Португальский (Португалия) ro -> Румынский ru -> Русский sr -> Сербский sk - > Словацкий сл -> словенский эс -> испанский sv -> шведский th -> тайский tr -> турецкий великобритания -> украинский vi -> вьетнамский

Чтобы предотвратить замену Nginx более новой версией при запуске команды sudo apt upgrade, вы можете запретить его обновление.

sudo apt-mark hold nginx

Комментарии, вопросы и предложения всегда приветствуются. Если вы нашли этот пост полезным, пожалуйста Подпишитесь на нашу бесплатную рассылку или следуйте за нами Google+ , щебет или же нравится наша страница в Facebook ,

Оцените этот урок

[Всего: 4 Среднее: 4,3]