Порты служат для того чтобы настроить в хостинге веб сервер который будет выводить нужный порт вашего сервиса в интернет.
Порты являются параметром уровня Сервиса:
ports:
- port: 3000
type: proxy # proxy | php
# Опционально
ws: true # По умолчанию false
# Опционально
location: /path-url # По умолчанию "/"
# Опционально
proxy_path: / # По умолчанию ""
# Опционально
timeout: 60s
# Опционально
buffer_size: 64k
# Опционально
client_max_body_size: 1m
# Опционально
request_buffering: off # По умолчанию on
# Опционально
buffering: off # По умолчанию on
# Опционально
http_version: '1.1' # По умолчанию 1.0
# Опционально
headers:
'Header-Name': 'Header-Value'
# Опционально
static:
- location: /location
path: /path
# Опционально
index: index.html
Далее приведены примеры для каждого типа порта, какого вида конфигурацию Nginx
создают эти параметры:
server {
# Статические расположения
${STATIC} # Подробнее ниже на странице
client_max_body_size ${client_max_body_size};
client_body_buffer_size ${buffer_size};
location ${location} {
# Заголовки по умолчанию
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
# Таймауты
client_body_timeout ${timeout};
proxy_connect_timeout ${timeout};
proxy_send_timeout ${timeout};
proxy_read_timeout ${timeout};
proxy_request_buffering ${timeout};
# Буфферизация
proxy_buffering ${buffering};
proxy_http_version ${buffering};
# Пользовательские заголовки
${HEADERS} # Подробнее ниже на странице
# Перенаправление на порт контейнера
proxy_pass https://${HOST}:${port}${proxy_path};
}
}
server {
# Статические расположения кроме /
${STATIC} # Подробнее ниже на странице
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
# Заголовки по умолчанию
add_header X-Real-IP $remote_addr;
add_header X-Forwarded-For $proxy_add_x_forwarded_for;
add_header Host $host;
add_header X-Forwarded-Proto $scheme;
# Настройки FPM
fastcgi_pass ${HOST}:${port};
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME ${WORKING_DIR}/$fastcgi_script_name;
include fastcgi_params;
# Пользовательские заголовки
${HEADERS} # Подробнее ниже на странице
}
location ~ /\.ht {
deny all;
}
}
Параметры которые не являются примитивными типами
Если передан объект заголовков, то на сервере добаляются такие конфигурации, в зависимости от типа порта.
proxy_set_header Header-Name "Header-Value"; # proxy
add_header Header-Name "Header-Value"; # php
Если передан объект статических путей, то на сервере буду созданы такие локации статичных файлов
location /location {
alias /path;
index index.html;
}
Параметры которые которые создают сборки кофигурации
proxy_http_version 1.0;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";