Что такое nginx

Настройка сервера Ubuntu

Прежде чем вы сможете настроить веб-сервер Apache, вам потребуется система для его запуска. Я рекомендую использовать сервер на базе Linux, и, по моему опыту, Ubuntu Server Edition – самый простой и удобный для пользователя, но с очень хорошей безопасностью. Я также предлагаю вам выбрать версию LTS (Long Term Support), которая предоставляет обновления и поддержку в течение 5 лет. В то время как не самые передовые релизы LTS являются наиболее стабильными для запуска надежных веб-серверов.

Процедуры установки подробно описаны в нескольких местах. Во время установки сервера я обычно выбираю установку сервера LAMP (Linux Apache MySQL PHP), файлового сервера SAMBA и сервера SSH, как показано на рисунке ниже:

Ubuntu Tasksel – Выбор пакета

Во время установки у вас спросят имя пользователя, пароль, имя хоста (имя вашего сервера), пароль администратора MySQL и т.д. Для большинства других вопросов вы можете выбрать значение по умолчанию или оставить пустым. После завершения установки обновите вашу систему, используя следующие команды:

Шаг 3 — Проверка веб-сервера

В конце процесса установки Ubuntu 20.04 запускает Apache. Веб-сервер уже должен быть запущен и работать.

Используйте команду инициализации , чтобы проверить работу службы:

Вывод подтвердил, что служба успешно запущена. Однако лучше всего протестировать ее запуск посредством запроса страницы из Apache.

Откройте страницу Apache по умолчанию, чтобы подтвердить работу программного обеспечения через ваш IP-адрес: Если вы не знаете IP-адрес вашего сервера, есть несколько способов узнать его с помощью командной строки.

Попробуйте ввести в командной строке сервера следующую команду:

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

Еще один вариант — использовать инструмент Icanhazip, который должен выдать вам ваш публичный IP-адрес, видимый в другом расположении в Интернете:

Когда вы узнаете IP-адрес вашего сервера, введите его в адресную строку браузера:

Вы увидите веб-страницу Ubuntu 20.04 Apache по умолчанию:

Эта страница показывает, что Apache работает корректно. Также на ней содержится информация о важных файлах Apache и расположении каталогов.

Настройка HTTPS

Если вы используете файрвол ufw, HTTPS по умолчанию будет отключен. Сначала давайте проверим статус:

$ ufw status

В моем случае он был отключен:

Status: inactive

Включаем:

$ ufw enable

Повторяем проверку и, скорее всего, увидим:

Status: active

Чтобы пропустить трафик HTTPS, разрешаем профиль Apache Full и SSH, так как если этого не сделать, подключиться по SSH в будущем не выйдет:

$ ufw allow ‘Apache Full’
$ ufw allow ssh

И после повторной проверки увидим:

To                             Action          From
—                              ——            —-
Apache Full                ALLOW         Anywhere
22/tcp                       ALLOW         Anywhere
Apache Full (v6)         ALLOW         Anywhere (v6)
22/tcp (v6)                ALLOW         Anywhere (v6)

После этого мы можем перейти непосредственно к выпуску сертификата.

Создание виртуального хоста с поддержкой ssl

Далее необходимо либо создать новый виртуальный хост apache, либо отредактировать существующий в файле /etc/httpd/conf/httpd.conf. Добавляем в конец файла:

<VirtualHost *:443>
 SSLEngine on
 SSLCertificateFile /root/cert/zeroxzed.ru.crt
 SSLCertificateKeyFile /root/cert/zeroxzed.ru.kye
 <Directory /var/www/vhosts/zeroxzed.ru/www>
 AllowOverride All
 </Directory>
 DocumentRoot /var/www/vhosts/zeroxzed.ru/www
 ServerName zeroxzed.ru
 </VirtualHost>

После сохранения проверяем конфигурацию apache:

# httpd -t

Если появляется предупреждение:

 _default_ VirtualHost overlap on port 443, the first has precedence

То ищем в /etc/httpd/conf/httpd.conf строчку NameVirtualHost *:80 и добавляем после нее NameVirtualHost *:443

Снова проверяем. Если ошибок нет, перезапускаем апач и заходим на сайт, прописав в адресной строке https, вместо http. Теперь ваш сайт доступен по протоколу https. Но пользователи сайта могут об этом не знать. Было бы разумным сделать переадресацию с открытого протокола на защищенный. Сделаем это.

Установка Apache Ubuntu 16.04

Apache — это кроссплатформенный веб-сервер с открытым исходным кодом. Он поддерживает все необходимые функции веб-сервера, включая CGI, SSL, и виртуальные домены.

Установить Apache в Ubuntu очень просто, для этого достаточно выполнить:

После установки добавим программу в автозагрузку:

И запустим веб-сервер сейчас:

Теперь можно проверить, что получилось, откройте браузер и наберите в адресной строке localhost:

Как видите, установка apache ubuntu 16.04 завершена, и веб-сервер уже работает. Но это ещё не всё. Если у вас один сайт, который нужно тестить на локальной машине, то всё отлично. Но если их несколько, то собирать их все в подпапках веб-сервера не совсем удобно, да и не все движки нормально относятся к этому. Потому давайте рассмотрим, как настроить виртуальные хосты.

Создайте новую папку для нашего виртуального хоста:

Дадим права на доступ:

Необходимо создать небольшой файл, index.html, чтобы он открылся, когда вы запустите этот сайт:

Теперь можно добавлять виртуальный хост, для этого создайте файл и наполните его содержимым:

Вот что значат некоторые строки:

Теперь сохраните файл, далее нужно активировать наш хост:

Перезапускаем веб-сервер:

Теперь необходимо завернуть трафик с этого домена на локальный сервер, для этого добавьте строчку в /etc/hosts:

Откройте браузер и в адресной строке наберите test.site:

Кроме того, мы можем включить поддержку ssl для нашего веб-сервера. Для этого выполните:

После этого нужно будет перезагрузить веб-сервер:

Теперь вы можете проверить работу SSL, набрав адрес https://localhost.

Браузер не доверяет нашему сертификату, поскольку он самоподписанный, но мы можем спокойно добавлять его в исключения, это ведь наш сертификат. Теперь работает:

Установка PHP 7

Без языка программирования установка и настройка LAMP в Ubuntu будет не завершена. PHP — это самый популярный язык программирования в веб. Его название — это рекурсивный акроним (PHP: Hypertext Preprocessor). Кроме того, что этот язык используется в веб, его можно применять как язык общего назначения, язык сценариев.

Установка PHP 7  в Ubuntu 16.04 выполняется следующей командой:

Если вы хотите установить все доступные модули PHP, чтобы в будущем не было проблем, можно выполнить команду:

После завершения установки проверим версию PHP:

Теперь пора проверить, как всё работает. Для этого создайте файл со следующим кодом на PHP:

Осталось перезапустить Apache2:

Установка PHP 7 в Ubuntu 16.04 завершена, и всё очень хорошо работает. Но нужно ещё кое-что настроить, а именно включить отображение ошибок в PHP. Иначе при возникновении ошибки вы увидите просто пустую страницу. Для этого откройте файл /etc/php/7.0/apache2/php.ini, найдите строку display_errors = Off и поменяйте off на on:

Теперь переходим к следующему этапу.

Необходимые условия

Перед тем, как начать следовать шагам, описанным в этом руководстве, вам необходимо настроить отдельный, не-рутовый (non-root) профиль пользователя на вашем сервере с Ubuntu 18.04. Кроме того, вам потребуется настроить базовый файрвол для блокирования всех портов, кроме необходимых для работы Apache. Вы можете ознакомиться с процессом настройки аккаунта пользователя и настройкой файрвола на вашем сервере следуя шагам нашего руководства по первичной настройке сервера на Ubuntu 18.04.

После завершения создания аккаунта войдите на ваш сервер с помощью вновь созданного пользователя.

2: Настройка брандмауэра

Теперь нужно отредактировать настройки брандмауэра и открыть доступ к стандартному порту Apache. Если вы выполнили руководство по начальной настройке сервера, брандмауэр UFW блокирует доступ к веб-серверу.

Во время установки Apache регистрируется в UFW и предоставляет несколько профилей, которые упрощают процесс управления доступом к Apache.

Чтобы просмотреть профили приложений ufw, введите:

Вы увидите список профилей:

Как видите, Apache предлагает три профиля:

  • Apache: поддерживает трафик по порту 80 (стандартный порт).
  • Apache Full: открывает порт 80 и 443 (шифрованный трафик TLS/SSL).
  • Apache Secure: поддерживает только шифрованный трафик TLS/SSL.

Рекомендуется включить наиболее ограничительный профиль, который все равно позволит поддерживать трафик. Поскольку вы еще не настроили SSL-сертификат, вам нужно разрешить трафик на порт 80:

Убедитесь, что профиль включен:

В выводе вы увидите:

7 ответов

на /etc/apache2/ports.conf измените порт, как

Listen 8079

затем перейдите в /etc/apache2/sites-enabled / 000-default.conf

и измените первую строку как

<VirtualHost *: 8079>

теперь перезапустите

sudo service apache2 restart

Apache теперь будет слушать порт 8079 и перенаправлять на /var/www / html

112

открыть httpd.conf файл в текстовом редакторе. Найдите эту строку:

Listen 80

и изменить его

Listen 8079

после изменения сохраните его и перезапустите apache.

Это была проблема брандмауэра. Был аппаратный брандмауэр, который блокировал доступ почти ко всем портам. (Отключение программного брандмауэра / SELinux bla bla не имело никакого эффекта)

затем я просмотрел открытые порты и использовал открытый порт.

Если вы столкнулись с той же проблемой, выполните следующую команду

sudo nmap -T Aggressive -A -v 127.0.0.1 -p 1-65000

он будет сканировать все открытые порты в вашей системе. Любой открытый порт можно получить из внешний.

Ref.: https://www.go2linux.org/which_service_or_program_is_listening_on_port

это работает для меня на Centos

первый: в файле / etc/httpd/conf / httpd.conf

добавить

Listen 8079

после

Listen 80

это до вашего сервера, чтобы слушать порт 8079

второй: перейти к виртуальному хосту для ex. / etc/httpd / conf.д/к vhost.conf

и добавьте следующий код ниже

<VirtualHost *:8079> DocumentRoot /var/www/html/api_folder ServerName example.com ServerAlias www.example.com ServerAdmin [email protected] ErrorLog logs/www.example.error_log CustomLog logs/www.example.access_log common </VirtualHost>

это значит, когда вы идете в свой www.example.com:8079 перенаправить на

/var/www/html / api_folder

но сначала вам нужно перезапустить службу

sudo service httpd restart

5

Если вам нужен порт прослушивания apache, отличный от 80, вы должны добавить следующий файл в ubuntu

список портов прослушивания

Listen 80 Listen 81 Listen 82

после того, как вы перейдете на ваш виртуальный файл hosts conf an define next

<VirtualHost *:80> #…v host 1 </VirtualHost> <VirtualHost *:81> #…host 2 </VirtualHost> <VirtualHost *:82> #…host 3 </VirtualHost>

если вы используете Apache на Windows:

  1. Проверьте имя службы Apache с помощью Win+R+services.msc+ Enter (если это не ApacheX.Y, он должен иметь имя программного обеспечения, которое вы используете с apache, например: «wampapache64»);
  2. начать командная строка как администратор (используя Win+R+cmd+ Enter не хватает);
  3. перейдите в каталог Apache, например:cd c:wampbinapacheapache2.4.9bin;
  4. проверьте, что файл конфигурации в порядке с:httpd.exe -n «YourServiceName» -t (замените имя службы на то, которое вы нашли на шаге 1);
  5. убедитесь, что служба остановлена: httpd.exe -k stop -n «YourServiceName»
  6. начните с:httpd.exe -k start -n «YourServiceName»
  7. если он начинается хорошо, Проблема больше не существует, но если вы получить:

    если номер порта не тот, который вы хотели использовать, откройте файл конфигурации Apache (например,C:wampbinapacheapache2.4.9confhttpd.conf открыть с помощью редактора кода или WordPad, но не Блокнот — он не читает новые строки должным образом) и замените номер на строке, которая начинается с Listen с номером порт, который вы хотите, сохранить его и повторите шаг 6. Если это тот, который вы хотели использовать, то продолжайте:

  8. Проверьте PID процесса, который использует этот порт с Win+R+resmon+ Enter, нажмите кнопку сеть tab, а затем на порты subtab;
  9. убить его с: taskkill /pid NUMBER /f (/f силы);
  10. Проверьте resmon для того чтобы подтвердить что порт свободен теперь и повторить шаг 6.

это гарантирует, что служба Apache была запущена правильно, конфигурация на файл конфигурации виртуальных хостов, как упоминал сарул (например: C:wampbinapacheapache2.4.9conf\httpd-vhosts.conf) необходимо, если вы устанавливаете свой путь к файлам там и меняете порт. Если вы измените его снова, не забудьте перезапустить службу:httpd.exe -k restart -n «YourServiceName».

для сервера FC22

компакт-диск /и т. д./httpd/conf файл редактировать файл httpd.conf

изменить: Слушать 80 к: Слушайте whatevernumber

сохраните файл

systemctl перезапустить httpd.сервис при необходимости откройте whatevernumber в маршрутизаторе / брандмауэре

2: Создание файла .htaccess

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

Примечание: Все правила, хранящиеся в .htaccess, будут работать и в конфигурационных файлах сервера. Документация Apache рекомендует использовать обычные конфигурационные файлы вместо .htaccess, поскольку они быстрее обрабатываются веб-сервером.

Однако в этом простом примере увеличение производительности не является главной целью. Кроме того, хранить правила в .htaccess очень удобно, особенно если один сервер обслуживает сразу несколько сайтов. Этот файл не требует перезагрузки сервера, чтобы изменения вступили в силу, а для его редактирования не нужны привилегии суперпользователя, что упрощает техническое обслуживание и внесение изменений в настройки. Некоторые популярные программы с открытым исходным кодом (например, WordPress и Joomla) часто используют файл .htaccess.

Прежде чем приступить к настройке .htaccess, нужно добавить несколько параметров в настройки сервера.

По умолчанию Apache не поддерживает .htaccess. Чтобы изменить это, откройте конфигурационный файл Apache в текстовом редакторе (например, в nano).

Найдите блок <VirtualHost *:80>. Добавьте в него следующие настройки:

Сохраните и закройте файл. Перезапустите Apache:

Теперь создайте .htaccess в корневом каталоге веб-сервера.

Добавьте следующую строку в начало файла, чтобы включить механизм перезаписи:

Сохраните и закройте файл.

В дальнейшем вы сможете использовать файл .htaccess для хранения правил маршрутизации приложения.

Безопасный Apache и PHP

После установки сервера LAMP выполните следующие незначительные шаги, чтобы повысить его безопасность:

Apache Security

Отредактируйте с помощью следующей команды:

Найдите следующие строки и внесите изменения, перечисленные ниже:

И,

В передней линии делает Apache игнорировать эту строку (комментарий).

PHP Безопасность

Отредактируйте с помощью следующей команды:

Найдите и измените его следующим образом:

Вышеуказанные изменения не позволят вашему серверу раскрыть, что PHP установлен (добавив свою подпись в заголовок веб-сервера) на ваш сервер вместе с другой информацией. Несмотря на то, что это может не быть угрозой безопасности, потенциальным хакерам это показывает, что веб-сервер использует PHP. Чем меньше хакер знает о конфигурации вашего сервера, тем лучше. Перезагрузите сервер Apache, используя следующую команду, чтобы применить вышеуказанные изменения:

5: Настройка виртуального хоста (рекомендуется)

На веб-сервере Apache вы можете использовать виртуальные хосты (в Nginx это блоки server) для изоляции настроек и размещения нескольких доменов на одном сервере. Здесь используется условный домен your_domain, который вы должны заменить собственным доменом.

Apache Ubuntu 20.04 по умолчанию предоставляет один включенный виртуальный хост, который обслуживает каталог /var/www/html. Этого хватит для обслуживания одного сайта, но если вы хотите разместить несколько сайтов, вам нужно создать новые виртуальные хосты. Создайте структуру каталогов в  /var/www для сайта your_domain, а /var/www/html оставьте как каталог по умолчанию, который будет обслуживаться, если запрос клиента не отвечает другим сайтам.

Создайте каталог для your_domain.

Затем задайте права на каталог с помощью переменной $USER:

Права должны быть установлены верно, если вы не меняли unmask, но на всякий случай вы можете ввести эту команду (тогда права на чтение, запись и выполнение будут только у владельца каталога, все остальные пользователи и групп смогут только читать его):

Затем создайте образец страницы index.html с помощью nano или другого редактора:

Вставьте в файл такой код HTML:

Сохраните и закройте файл.

Чтобы Apache мог обслуживать этот контент, необходимо создать файл виртуального хоста с правильными директивами. Вместо того чтобы напрямую изменять конфигурационный файл по умолчанию, /etc/apache2/sites-available/000-default.conf, создайте новый файл /etc/apache2/sites-available/your_domain.conf:

Вставьте в файл следующий блок конфигураций. Он похож на конфигурации по умолчанию, но содержит правильный домен и каталог:

Обратите внимание: DocumentRoot содержит путь нового каталога, а ServerAdmin – новый адрес электронной почты администратора сайта your_domain. Мы также добавили в файл две директивы: ServerName определяет базовый домен, который должен соответствовать этому виртуальному хосту, а ServerAlias определяет алиасы

Сохраните и закройте файл.

Включите файл с помощью a2ensite:

Отключите стандартный сайт, который определяется файлом 000-default.conf:

Проверьте ошибки в конфигурациях:

Если ошибок нет, команда вернет такой вывод:

Перезапустите Apache:

Теперь Apache обслуживает домен вашего сайта. Чтобы убедиться в этом, откройте ссылку http://your_domain.

Определение¶

Понятие веб-сервер может относиться как к аппаратной начинке, так и к программному обеспечению. Или даже к обеим частям, работающим совместно.

  1. С точки зрения «железа», веб-сервер — это компьютер, который хранит файлы сайта (HTML-документы, CSS-стили, JavaScript-файлы, картинки и другие) и доставляет их на устройство конечного пользователя (веб-браузер и т.д.). Он подключен к сети Интернет и может быть доступен через доменное имя, подобное .
  2. С точки зрения ПО, веб-сервер включает в себя несколько компонентов, которые контролируют доступ веб-пользователей к размещенным на сервере файлам, как минимум — это HTTP-сервер. HTTP-сервер — это часть ПО, которая понимает URL’ы (веб-адреса) и HTTP (протокол, который ваш браузер использует для просмотра веб-страниц).

На самом базовом уровне, когда браузеру нужен файл, размещенный на веб-сервере, браузер запрашивает его через HTTP-протокол. Когда запрос достигает нужного веб-сервера («железо»), сервер HTTP (ПО) принимает запрос, находит запрашиваемый документ (если нет, то сообщает об ошибке ) и отправляет обратно, также через HTTP.

Шаг 11 — Обслуживание статических файлов с помощью Nginx (необязательно)

Когда Nginx перенаправляет запросы доменов Apache через прокси-сервер, каждый запрос файла этого домена отправляется в Apache. Nginx обслуживает статические файлы, такие как изображения, JavaScript и таблицы стилей, быстрее Apache. Поэтому мы настроим файл виртуального хоста Nginx для прямого обслуживания статических файлов и перенаправления запросов PHP в Apache.

Откройте в своем редакторе файл :

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

Если вы решили не использовать сертификаты SSL и TLS, измените свой файл, чтобы он выглядел следующим образом:

/etc/nginx/sites-available/apache

Если вы также хотите обеспечить доступность HTTPS, используйте следующую конфигурацию:

/etc/nginx/sites-available/apache

Директива указывает Nginx искать файлы в корне документа document root и выводить их напрямую. Если файл имеет расширение , запрос перенаправляется в Apache. Даже если файл отсутствует в document root, запрос перенаправляется в Apache, чтобы функции приложения (например, постоянные ссылки) работали без проблем.

Предупреждение. Директива очень важна, поскольку она не дает Nginx выводить содержимое файлов конфигурации Apache с важными данными, таких как и .

Сохраните файл и проведите тест конфигурации:

Если тест завершается успешно, перезагрузите Nginx:

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

Теперь откройте в браузере и посмотрите на результаты вывода журнала. Вы увидите ответ Apache:

Затем откройте страницы каждого сайта, и вы не увидите записи журнала Apache. Их обслуживает Nginx.

Завершив изучение файла журнала, нажмите чтобы остановить отслеживание.

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

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: