Как использовать динамический порт, если порт жестко запрограммирован в файле .json? - PullRequest
0 голосов
/ 28 апреля 2018

При попытке запустить blue-jay / blueprint из Heroku я не могу привязать порт 80, как указано в файле .json, потому что Heroku, похоже, динамически устанавливает порты.

Использование os.Getenv ("PORT"), похоже, не вариант, так как .json - это статический файл.

HTTPPort: env.json

"Server": {
    "Hostname": "",
    "UseHTTP": true,
    "UseHTTPS": false,
    "RedirectToHTTPS": false,
    "HTTPPort": 80,
    "HTTPSPort": 443,
    "CertFile": "tls/server.crt",
    "KeyFile": "tls/server.key"
},

Возвращенная ошибка сервера:

server.go:56: listen tcp :80: bind: permission denied

Источники:

https://github.com/blue-jay/blueprint/blob/master/env.json.example

https://github.com/blue-jay/blueprint

Каков подходящий способ справиться с этим?

1 Ответ

0 голосов
/ 28 апреля 2018

Правда, вы не можете установить порт на Heroku. Вы должны иметь дело с их портом. Я бы порекомендовал изменить blueprint.go прямо перед запуском сервера

port := os.Getenv("PORT")

if port == "" {
    log.Fatal("$PORT must be set")
}

config.Server.HTTPPort, _ = strconv.Atoi(port)

// Start the HTTP and HTTPS listeners
server.Run(
    handler,       // HTTP handler
    handler,       // HTTPS handler
    config.Server, // Server settings
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...