Поиск:

Поиск по:

Результаты поиска по запросу «»
Найдено совпадений
По вашему запросу ничего не найдено
.
Показать еще

Облачный хостинг - как запустить сайт на golang

В облачном хостинге некоторые решения могут показаться вам нестандартными.
Поэтому перед началом работы мы бы рекомендовали ознакомиться с вводной статьей.

В рамках облачного хостинга возможно разместить сайты, написанные на множестве языков программирования.

Ваш сайт может быть написан на C, C++, golang или другом языке программирования.

В рамках этой статьи мы, в качестве примера, запустим простой сайт на golang.

Скачать golang можно на официальном сайте.

Предположим у нас уже есть приложение, которое при запуске прикрепляется (bind) к порту 80.

package main

import (
    "fmt"
    "net/http"
)

func main() {
    http.HandleFunc("/", func(w http.ResponseWriter, r * http.Request) {
        fmt.Fprintf(w, "Welcome to the Internet! Please follow me.\n")
    })

    http.ListenAndServe(":80", nil)
}

При обращении к сайту приложение выводит лишь одну строку текста Welcome to the Internet! Please follow me.

# curl  0.0.0.0:80
Welcome to the Internet! Please follow me.

Если бы мы захотели разместить это приложение на облачном хостинге, то нам бы потребовалось немного его изменить. Прежде всего, на облачном хостинге мы не можем прикрепляется (bind) к порту 80, поскольку он уже занят вебсервером nginx.

Поэтому приложению потребуется прикрепиться на IP и порт, указанные в переменных окружения APP_IP и APP_PORT.

Изменим код нашего приложения таким образом, чтобы прикрепляться к APP_IP и APP_PORT. Переменные окружения мы будем получать при помощи модуля os, встроенного в golang.

package main

import (
    "os"
    "fmt"
    "net/http"
)

func main() {
    http.HandleFunc("/", func(w http.ResponseWriter, r * http.Request) {
        fmt.Fprintf(w, "Welcome to the Internet! Please follow me.\n")
    })

    // создадим переменные APP_IP и APP_PORT, а их значения возьмем из одноименных переменных окружения
    APP_IP: = os.Getenv("APP_IP")
    APP_PORT: = os.Getenv("APP_PORT")

    fmt.Println(APP_IP + ":" + APP_PORT)
    http.ListenAndServe(APP_IP + ":" + APP_PORT, nil)
}

Сохраним этот код в файл welcome.go.

# ls -l
total 4
-rw-r--r-- 1 root root 629 Sep  4 10:23 welcome.go

Скомпилируем его

# go build welcome.go
# ls -l
total 5564
-rwxr-xr-x 1 root root 5689373 Sep  4 10:25 welcome
-rw-r--r-- 1 root root     629 Sep  4 10:23 welcome.go

Полученный файл welcome осталось загрузить на облачный хостинг.

Создадим новый сайт на облачном хостинге.

При создании сайта необходимо выбрать, что сайт работает на Python AsyncIO:

Настройки

Для загрузки файла подключимся по SFTP.

Загрузим файл welcome в каталог sitename/app.

Далее откроем панель управления и перейдем в созданный сайт. Откроем вкладку AsyncIO и в строке "Команда для запуска" укажем путь app/welcome.

Осталось со своего компьютера проверить все ли работает корректно:

user@local-pc:~$ curl http://mydomain.ru/
Welcome to the Internet! Please follow me.
user@local-pc:~$

Готово!

Если вы планируете отлаживать работу сайта локально, и только потом загружать на хостинг, то достаточно локально создать переменные APP_IP и APP_PORT.

user@local-pc:~$ export APP_PORT=8081
user@local-pc:~$ export APP_IP=127.0.0.1
user@local-pc:~$ env | grep 'APP_'
APP_PORT=8081
APP_IP=127.0.0.1
user@local-pc:~$ ./welcome
127.0.0.1:8081

После этого

user@local-pc:~$ curl 127.0.0.1:8081
Welcome to the Internet! Please follow me.



Больше информации об облачном хостинге.

Регистрация доменов

в зонах .RU .РФ

от 200 рублей Зарегистрировать домен

SSL сертификаты

Подтверждение сайта и надежная защита

передаваемых данных

Купить сертификат

Облачные VDS

дешевле чашки кофе

Процессорных ядер: 4, Память: 4 Гб, Диск: 20 Гб SSD, Резервное копирование

от 35 р/день Заказать VDS

Все, что нужно от хостинга

Простое решение для вашего сайта

Подробнее

Хранилище данных

Храни что хочешь по смешным ценам

Почасовая оплата за размещенные данные.

Заказать хранилище