Май
24
2021

Добавление Golang сервера в OpenServer и Nginx

Если вы начинаете работать с языком Go и у вас стоит OpenServer, вы можете сделать go сервер на локальном домене и с Nginx для отдачи статичных файлов.

В настройках OpenServer сделайте работу через 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 сервера:
Локальный Golang сервер

Положим картинку в папку, которую мы указали как root в конфиге nginx, откроем её на нашем сайте локальном:
Nginx Golang сервер статика

Итог

У нас есть локальный сервер
Статические файлы отдаются через Nginx, остальные запросы обрабатываются Go сервером

Пожалуйста, оцените на сколько вам понравилась статья!
Голосов: 2 Среднее: 3