Как настроить сервер Nginx таким образом, чтобы при обращении к `api.example.com` запросы не направлялись в Nginx, а вместо этого сервер Golang был доступен на бэкенд-сервере. Нужно убедиться, что запросы к `api.example.com` не обрабатываются Nginx и направляются прямо на сервер Golang.
1. Для настройки прослушивания портов 80/443 только для основного доменного имени без поддоменов в Nginx можно использовать следующий конфигурационный файл:
```bash
server {
listen 80;
server_name example.com;
location / {
# настройки обработки запросов для основного доменного имени
}
}
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /path/to/certificate.crt;
ssl_certificate_key /path/to/private.key;
location / {
# настройки обработки защищенных запросов для основного доменного имени
}
}
```
Этот конфигурационный файл ограничит прослушивание портов 80/443 только для основного доменного имени `example.com`, и исключит поддомены.
2. Для настройки сервера Nginx таким образом, чтобы при обращении к `api.example.com` запросы не обрабатывались им, а направлялись на сервер Golang на бэкенд-сервере, можно использовать следующий конфигурационный файл:
```bash
server {
listen 80;
server_name api.example.com;
location / {
proxy_pass http://backend_server_ip:backend_server_port;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
```
Этот конфигурационный файл настроит сервер Nginx для проксирования запросов, поступающих на `api.example.com`, на бэкенд-сервер Golang по указанному IP и порту. Важно убедиться, что сервер Golang настроен правильно и готов принимать запросы от Nginx.
На том же самом 443 порту прослушать не получится, потому придётся прослушивать на отдельном, и проксировать через nginx. <br/> Нужно добавить отдельный блок server для поддомена (или несколько блоков), но со своими настройками и без default_server. Не старые блоки заменить, а дописать новые. Что-то вроде этого: <br/> <pre><code>server {
listen [::]:80;
listen 80;
server_name api.example.com;
return 301 https://$host$request_uri;
}
server {
listen [::]:443 ssl;
listen 443 ssl;
http2 on;
server_name api.example.com;
ssl_certificate путь_к_серту_для_api.example.com;
ssl_certificate_key путь_к_ключу_для_api.example.com;
location / {
proxy_pass 127.0.0.1:порт_вашего_приложения;
........
........
}
}</code></pre>
А куда вы хотите попадать, если не в nginx? <br/> <br/> Заведите дефолтный серверный блок, в котором настройке проксирование куда вам нужно.