使用Vapor 3更改主机名和端口

时间:2018-01-25 19:10:11

标签: swift docker vapor

Vapor 3似乎没有读取Config / server.json文件,因此我无法配置Vapor 3应用程序绑定的主机名和端口。

Vapor 3有不同的方法吗?

9 个答案:

答案 0 :(得分:20)

您可以使用NIOServerConfig。

let serverConfiure = NIOServerConfig.default(hostname: "0.0.0.0", port: 9090)
services.register(serverConfiure)

蒸汽版本为3.0.3

答案 1 :(得分:13)

目前,您可以在运行服务器时设置端口和主机名:

swift run Run --hostname 0.0.0.0 --port 9000

EngineServerappears to be基于结构的配置,但我认为它在运行时尚不可配置。上一次Vapor开发人员回答了这个问题(在他们的Slack上),命令行参数方法是建议的。

答案 2 :(得分:6)

在蒸汽4中

app.http.server.configuration.hostname = "127.0.0.1"
app.http.server.configuration.port = 8000

第3蒸气

services.register(NIOServerConfig.default(hostname: "127.0.0.1", port: 8000))

答案 3 :(得分:4)

我的$ 0.02

import Vapor

/// Called before your application initializes.
///
/// [Learn More →](https://docs.vapor.codes/3.0/getting-started/structure/#configureswift)
public func configure(
    _ config: inout Config,
    _ env: inout Environment,
    _ services: inout Services
    ) throws {
    if env == .development {
        services.register(Server.self) { container -> EngineServer in
            var serverConfig = try container.make() as EngineServerConfig
            serverConfig.port = 8989
            serverConfig.hostname = "192.168.31.215"
            let server = EngineServer(
                config: serverConfig,
                container: container
            )
            return server
        }
    }

    //Other configure code
}

它完美适用于Vapor 3.0.0 RC 2.4.1

答案 4 :(得分:4)

请确保您使用的是Vapor 3版本,然后使用:

vapor run --hostname=0.0.0.0 --port=8080

如果您未在参数后添加 =,您将收到以下投诉:

CommandError: Unknown command 8080

如果您按照我上面的建议行事,您将收到:

[Deprecated] --option=value syntax is deprecated.

请使用--option value(with no =),但该命令将运行并正常工作。

我无法找到在参数之后没有=的情况下运行此命令的方法。

答案 5 :(得分:2)

您可以使用命令行标志设置主机名和端口:

--hostname localhost --port 8080

答案 6 :(得分:1)

您也可以在EngineServerConfig注册services

configure.swift中,插入以下代码:

let myServerConfig = try EngineServerConfig.detect(from: &env, port: 8081)
services.register(myServerConfig)

这适用于3.0.0-rc.2.2

答案 7 :(得分:0)

编辑Run方案的“启动时传递的参数”对我也有用

enter image description here enter image description here

答案 8 :(得分:0)

蒸气中:稳定的3.1.10

打开:configure.swift

在:public func configure()

添加以下内容:

// Define Hostname & Port to listen to ...
let myServerConfig = NIOServerConfig.default(hostname: "servers-hostname.local", port: 8080)
services.register(myServerConfig)