|
|
|
|
# Решения
|
|
|
|
|
|
|
|
|
|
### 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`.
|