diff --git a/module1/09_nginx/solutions.md b/module1/09_nginx/solutions.md new file mode 100644 index 0000000..373af99 --- /dev/null +++ b/module1/09_nginx/solutions.md @@ -0,0 +1,165 @@ +# Решения + +### 1. +Установите пакет `nginx`. +``` +$ sudo apt install nginx +``` + +### 2. +Запустите исполняемый файл `nginx`. Проверьте, что он запустился `ps aux`. +``` +$ sudo ps aux | grep nginx +``` + +### 3. +После запуска `nginx` им можно управлять, вызывая исполняемый файл с параметром `-s`. Попробуйте команды: +- `stop` — быстрое выключение, +- `quit` — завершение работы с ожиданием завершения обслуживания текущих запросов рабочими процессами, +- `reload` — перезагрузка файла конфигурации, +- `reopen` — повторное открытие лог-файлов, +используя следующий синтаксис: +``` +$ nginx -s signal +``` +Команда должна выполняться под тем же пользователем, который запустил `nginx`. +``` +$ sudo nginx -s reload +$ sudo nginx -s reopen +$ sudo nginx -s stop +$ sudo nginx; sudo ps uax +$ sudo nginx -s quit +``` + +### 4. +Сигнал также может быть отправлен процессам `nginx` с помощью инструментов Unix, таких как утилита `kill`. Идентификатор процесса главного процесса `nginx` по умолчанию записывается в файл `nginx.pid` в каталоге `/usr/local/nginx/logs` или `/var/run`. + +Завершите корректно работу nginx командой `kill -s QUIT`. +``` +$ sudo kill -9 QUIT $(cat /var/run/nginx.pid) +``` + +### 5. +Настройте сервис `nginx`, установленный вместе с пакетом. Активируйте его и запустите командой `systemctl`. +``` +$ sudo systemctl enable nginx +$ sudo systemctl start nginx +$ sudo systemctl status nginx +``` + +### 6. +```bash +$ cat /etc/nginx/nginx.conf +user www-data; +worker_processes auto; +pid /run/nginx.pid; +include /etc/nginx/modules-enabled/*.conf; + +events { + worker_connections 768; + # multi_accept on; +} + +http { + + ## + # Basic Settings + ## + + sendfile on; + tcp_nopush on; + types_hash_max_size 2048; + # server_tokens off; + + # server_names_hash_bucket_size 64; + # server_name_in_redirect off; + + include /etc/nginx/mime.types; + default_type application/octet-stream; + + ## + # SSL Settings + ## + + ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE + ssl_prefer_server_ciphers on; + + ## + # Logging Settings + ## + + access_log /var/log/nginx/access.log; + error_log /var/log/nginx/error.log; + + ## + # Gzip Settings + ## + + gzip on; + + # gzip_vary on; + # gzip_proxied any; + # gzip_comp_level 6; + # gzip_buffers 16 8k; + # gzip_http_version 1.1; + # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; + + ## + # Virtual Host Configs + ## + + include /etc/nginx/conf.d/*.conf; + include /etc/nginx/sites-enabled/*; +} +``` + +### 7. +``` +$ tree /etc/nginx/ +/etc/nginx/ +├── conf.d +├── fastcgi.conf +├── fastcgi_params +├── koi-utf +├── koi-win +├── mime.types +├── modules-available +├── modules-enabled +│ ├── 50-mod-http-geoip.conf -> /usr/share/nginx/modules-available/mod-http-geoip.conf +│ ├── 50-mod-http-image-filter.conf -> /usr/share/nginx/modules-available/mod-http-image-filter.conf +│ ├── 50-mod-http-xslt-filter.conf -> /usr/share/nginx/modules-available/mod-http-xslt-filter.conf +│ ├── 50-mod-mail.conf -> /usr/share/nginx/modules-available/mod-mail.conf +│ ├── 50-mod-stream.conf -> /usr/share/nginx/modules-available/mod-stream.conf +│ └── 70-mod-stream-geoip.conf -> /usr/share/nginx/modules-available/mod-stream-geoip.conf +├── nginx.conf +├── proxy_params +├── scgi_params +├── sites-available +│ └── static-server.conf +├── sites-enabled +│ └── static-server.conf -> /etc/nginx/sites-available/static-server.conf +├── snippets +│ ├── fastcgi-php.conf +│ └── snakeoil.conf +├── uwsgi_params +└── win-utf + +6 directories, 20 files +``` + +### 8,9,10 +Рекомендации по устранению проблем. + +Проверьте, что в конфигурационных файлах указаны абсолютные пути. + +Проверьте порты прослушивания. Проброшенные порты с `193.32.63.170+X` на `10.160.179.10+X`: `22`, `80`, `443`. + +Проверьте, конфигурации на предмет синтаксических ошибок. Завершения строк `;`. Помочь сделать проверку может команда `nginx -t`. + +Проверьте, что сервис nginx запущен. + +Проверьте, что добавили символическую ссылку в `/etc/nginx/sites-enabled` на конфигурационный файл в `/etc/nginx/sites-available`. + +Если не открываются скаченные изображения, проверьте, что вы используете прямые ссылки для скачивания. Проверьте размер файлов изображений. + +Если вы выбрали сложный вариант решения в 10 задании, проверьте, что машины `10.160.179.10+X` и `10.160.179.10+20+X` находятся в одной vlan `vmbr499` с доступом в интернет, друг друга "видят" командой `ping`. \ No newline at end of file