Если вы начинаете работать с языком Go и у вас стоит OpenServer, вы можете сделать go сервер на локальном домене и с Nginx для отдачи статичных файлов.
В настройках OpenServer сделайте работу через Nginx:
В папке опенсервера найдите настройки нужной версии nginx. У меня это папка F:\OpenServer\OSPanel\userdata\config\
Там будет 2 файла: Nginx-1.12_server.conf и Nginx-1.12_vhost.conf
Открываем файл Nginx-1.12_server.conf, vhost нам не нужен (его OpenServer копирует много раз под каждый домен)
В конец файла Nginx-1.12_server.conf добавляем строки:
server {
listen 127.0.0.1:80;
listen 127.0.0.1:443 ssl;
server_name golang.local;
location / {
proxy_pass http://localhost:8080;
}
location ~ \. {
root "f:/openserver/ospanel/godomains/golang.local";
try_files $uri $uri/ @go;
}
location @go {
proxy_pass http://localhost:8080;
}
}
Обратите внимание на директивы:
server_name - указывает имя домена
root - указывает папку, где искать статичные файлы
proxy_pass - где работает Go сервер
Отдельно по директиве root:
Сайт не получится разместить в папке domains, где лежат основные сайты, иначе OpenServer добавит для него свои настройки и будут баги, создайте папку в другом месте. У меня не заработало с кириллицей в пути к папке, желательно чтобы там были только латинские символы и без пробелов.
Осталось добавить наш домен в hosts
Открываем C:\Windows\System32\drivers\etc\hosts, добавляем строку
127.0.0.1 golang.local
Сохраняем всё, запускаем OpenServer, запускаем Go сервер.
Открывая в браузере http://golang.local/, видим там ответ Go сервера:
Положим картинку в папку, которую мы указали как root в конфиге nginx, откроем её на нашем сайте локальном:
Итог
У нас есть локальный сервер
Статические файлы отдаются через Nginx, остальные запросы обрабатываются Go сервером