Добрый день,
Купил хостинг, прописал ns записи, добавил A запись. Для проверки корректной привязки домена установил nginx, проверил работу на 80 порту для условно domen.ru, Hello Nginx открылся.
Путаюсь запуститься с докером.
1) Рабочий вариант конфига: когда работает обращение только с 80 порта (
http://domen.ru):server
{
listen 80;
server_name www.domen.ru domen.ru;
index index.php index.html;
root /var/www/public;
location / {
try_files $uri /index.php?$args;
}
location /docs {
try_files $uri $uri/;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass php-fpm:9000; # так называется контейнер с php-fpm
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
2) Вариант с проблемой с https:
server {
listen 80;
server_name www.domen.ru domen.ru;
return 301 https://$host$request_uri;
}
server {
listen 443;
server_name www.domen.ru domen.ru;
charset utf-8;
index index.php index.html;
root /var/www/public;
location / {
try_files $uri /index.php?$args;
}
location /docs {
try_files $uri $uri/;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass php-fpm:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
ssl on;
ssl_certificate /etc/nginx/ssl/fullchain.pem; # определено в volume
ssl_certificate_key /etc/nginx/ssl/privkey.pem; # определено в volume
}
При обращении на
https://domen.ru:
Выводится сообщение:
Не удается получить доступ к сайту Сайт domen.ru не позволяет установить соединение.
Попробуйте сделать следующее:
Проверьте подключение к Интернету.
Проверьте настройки прокси-сервера и брандмауэра.
ERR_CONNECTION_REFUSED
Серты сгенерированы посредством
certbot и на хостинге прокинуты в
volume
На что чтоит обратить внимание, чтобы решить проблему?
docker-compose.ymlversion: '3.7'
services:
nginx:
container_name: nginx
build:
context: ./
dockerfile: docker/containers/nginx/${ENV}/Dockerfile
volumes:
- ${APP_PATH_HOST}:/var/www
- ./volumes/ssl:/etc/nginx/ssl
- ./volumes/log/nginx/:/var/log/nginx/
ports:
- 443:443
- 80:80
extra_hosts:
- domen.ru:{ip_address}
php-fpm:
container_name: php-fpm
build: ${CONTAINERS_PATH}/php-fpm
volumes:
- ${APP_PATH_HOST}:/var/www
environment:
- REDIS_PORT=6379
- REDIS_HOST=redis
- DB_CONNECTION=pgsql
- DB_PORT=5432
- DB_HOST=pgsql
php-cli:
container_name: php-cli
build: ${CONTAINERS_PATH}/php-cli
volumes:
- ${APP_PATH_HOST}:/var/www
environment:
- REDIS_PORT=6379
- REDIS_HOST=redis
- DB_CONNECTION=pgsql
- DB_PORT=5432
- DB_HOST=pgsql
tty: true
pgsql:
container_name: pgsql
image: postgres:${POSTGRES_VERSION}
environment:
- POSTGRES_USER=${DB_USER}
- POSTGRES_PASSWORD=${DB_PASSWORD}
- POSTGRES_DATABASE=${DB_NAME}
ports:
- 54321:5432
volumes:
- ${STORAGE_PATH}/postgres:/var/lib/postgresql/data
node:
container_name: node
image: node:${NODE_VERSION}
volumes:
- ${APP_PATH_HOST}:/var/www
working_dir: /var/www
tty: true
./docker/containers/nginx/prod/DockerfileFROM nginx:1.10
ADD ./docker/nginx/prod.conf /etc/nginx/conf.d/default.conf
WORKDIR /var/www
В папке
./volumes/ssl сертификаты точно есть.
На хостинге выполнил следующие комманды:
$ nmap -sT -p80,443 185.228.233.68
Starting Nmap 7.60 (
https://nmap.org ) at 2019-11-10 14:37 MSK
Nmap scan report for www.domen.ru (185.228.233.68)
Host is up (0.00052s latency).
PORT STATE SERVICE
80/tcp closed http
443/tcp closed https
Nmap done: 1 IP address (1 host up) scanned in 0.08 seconds
$ lsof -Pni | grep ":80|:443"
Пустой вывод
$ sudo lsof -i -P -n | grep LISTEN
systemd-r 643 systemd-resolve 13u IPv4 15063 0t0 TCP 127.0.0.53:53 (LISTEN)
sshd 871 root 3u IPv4 17768 0t0 TCP *:22 (LISTEN)
sshd 871 root 4u IPv6 17770 0t0 TCP *:22 (LISTEN)
docker-pr 22065 root 4u IPv6 275479 0t0 TCP *:54321 (LISTEN)