|
Docker - Создание хоста
Docker - Создание хоста
1. Создание папку проекта
- Переходим в папку www c помозью команды:
- Создание папку под проект
- Переходим в проект
- Создаем заглушку
1
| echo "<h1><site.ru></h1>" > index.php |
1
| echo "<? phpinfo();?>" > info.php |
2. Создание Nginx конфигурации
- По пути ningx/conf.d создаем файл конфигурации site.ru.conf для настройки SSL
1
| ningx/conf.d/<site.ru>.conf |
со следующим содержимым
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| server {
server_name <site.ru>;
charset UTF-8;
root /var/www/<site.ru>;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/<site.ru>$fastcgi_script_name;
set $root_path /var/www/<site.ru>;
include fastcgi_params;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_param DOCUMENT_ROOT /var/www/<site.ru>;
}
} |
3. Docker composer
- Добавление в контейнер Nginx
1
| - ../../www/<stie.ru>:/var/www/<site.ru>:ro |
- Добавление в контейнер Сertbot
1
| - ../../www/<site.ru>:/var/www/<site.ru>:rw |
- Добавление контейнер PHP
1
| - ../../www/<site.ru>:/var/www/<site.ru>:rw |
4. Проверка работы
- Перезапустим контейнеры
- Проверим запустился ли сайт
5. Установка ssl
- Получаем ssl сертификат
1
| docker compose run --rm certbot certonly --webroot --webroot-path /var/www/<site.ru>/ -d <site.ru> |
- Обновляем конфигурацию Nginx
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| server {
listen 80;
listen [::]:80;
server_name <site.ru> www.<site.ru>;
server_tokens off;
location /.well-known/acme-challenge/ {
root /var/www/<site.ru>;
}
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl;
server_name <site.ru> www.<site.ru>;
ssl_certificate /etc/nginx/ssl/live/<site.ru>/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/live/<site.ru>/privkey.pem;
include /etc/nginx/ssl/options-ssl-nginx.conf;
ssl_dhparam /etc/nginx/ssl/ssl-dhparams.pem;
charset UTF-8;
client_max_body_size 20m;
client_body_buffer_size 128k;
root /var/www/<site.ru>;
index index.php index.html index.htm;
error_log /var/log/nginx/<site.ru>/error.log;
access_log /var/log/nginx/<site.ru>/access.log;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/<site.ru>$fastcgi_script_name;
set $root_path /var/www/<site.ru>;
include fastcgi_params;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_param DOCUMENT_ROOT /var/www/<site.ru>;
}
} |
- Создадим папку для логов
1
| mkdir /var/proj/all/logs/nginx/update.go.ams74.ru |
- Перезапустим контейнеры
|