Добрый день!
Есть конфиг ниже в спойлере (в первом блоке server убрал содержимое из location, чтобы меньше места занимало).
Все location работают нормально, по домену bot-test.example.ru сервис тоже нормально открывается через https (настройки во втором блоке server).
Пытаюсь сделать для всех запросов, либо для отдельных доменов редирект с http на https, но пока он не работает. (третий блок server). Хотя вроде бы, все по официальной документации.
В чем здесь ошибка и как сделать правильно?
По
этой ссылке вроде все попробовал уже
конфиг
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
upstream botpress_server {
server botpress-server:3000;
}
# Disable sending the server identification
server_tokens off;
# Prevent displaying Botpress in an iframe (clickjacking protection)
add_header X-Frame-Options SAMEORIGIN;
# Prevent browsers from detecting the mimetype if not sent by the server.
add_header X-Content-Type-Options nosniff;
# Force enable the XSS filter for the website, in case it was disabled manually
add_header X-XSS-Protection "1; mode=block";
# Configure the cache for static assets
proxy_cache_path /srv/nginx_cache levels=1:2 keys_zone=my_cache:10m max_size=10g
inactive=60m use_temp_path=off;
# Set the max file size for uploads (make sure it is larger than the configured media size in botpress.config.json)
client_max_body_size 15M;
server {
listen 443 ssl;
server_name api-test.example.ru www.api-test.example.ru;
ssl_certificate cert.crt;
ssl_certificate_key key.crt;
root /var/www;
index index.html;
location / {
try_files $uri $uri/ =404;
}
location /pgadmin/ {
...
}
location /consul/ {
...
}
location /bus/ {
...
}
location /auth/ {
...
}
location /grafana/ {
...
}
# Proxy Grafana Live WebSocket connections.
location /grafana/api/live {
...
}
location /integration/mapping {
...
}
location /token {
...
}
}
server {
listen 443 ssl;
server_name bot-test.example.ru www.bot-test.example.ru;
ssl_certificate cert.crt;
ssl_certificate_key key.crt;
root /var/www;
index index.html;
# Enable caching of assets by NGINX to reduce load on the server
location ~ .*/assets/.* {
proxy_cache my_cache;
proxy_ignore_headers Cache-Control;
proxy_hide_header Cache-Control;
proxy_hide_header Pragma;
proxy_pass http://botpress-server:3000;
proxy_cache_valid any 30m;
proxy_set_header Cache-Control max-age=30;
add_header Cache-Control max-age=30;
}
# We need to add specific headers so the websockets can be set up through the reverse proxy
location /socket.io/ {
proxy_pass http://botpress-server:3000/socket.io/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
# All other requests should be directed to the server
location / {
proxy_pass http://botpress-server:3000;
}
}
server {
server_name bot-test.example.ru www.bot-test.example.ru;
return 301 https://$server_name$request_uri;
}
}
UPD: все оказалось проще, порт 80 был закрыт вне nginx.
Конфигурация с предложенным решением от
Drno работает