如何在本地网络上为 meteor 应用程序配置 Passenger

How to configure Passenger for meteor app on local network

我在使用 Phusion Passenger 在我的 LAN 上部署 Meteor 应用程序时遇到了问题 运行。 该应用程序 运行 在 Ubuntu 16.04 服务器上。

/etc/nginx/sites-enabled 中应用程序的配置是:

server {
    listen 80;
    server_name ubuntu64;

    # Tell Nginx and Passenger where your app's 'public' directory is
    root /var/www/appname/bundle/public;

    # Turn on Passenger
    passenger_enabled on;

    # Tell Passenger that your app is a Meteor app
    passenger_app_type node;
    passenger_startup_file main.js;

    # Tell your app where MongoDB is
    passenger_env_var MONGO_URL mongodb://user:pwd@localhost:27017/appname;

    # Tell your app what its root URL is
    passenger_env_var ROOT_URL http://ubuntu64;
}

该应用程序运行良好,我可以从网络中的其他 PC 使用该应用程序,但前提是我在浏览器的地址栏中输入确切的服务器 IP 地址;如果我键入服务器名 ("ubuntu64"),则不会。如果我这样做,我会从 Ngnix 收到一个欢迎页面和 "Further configuration is required".

的消息

我应该如何更改配置,以便我可以使用服务器名打开应用程序,或者使用 "servername/appname" 打开应用程序,因为我计划在同一台服务器上托管多个流星应用程序。

编辑:来自日志文件的更多信息/var/log/ngnix/access.log

我在连接到“192.168.178.52”时看到了这个:

192.168.178.77 - - [27/Sep/2017:13:43:58 +0200] "GET /sockjs/info?cb=oj4gdaujfh HTTP/1.1" 200 89 "http://192.168.178.52/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36"

...这是连接到 "ubuntu64" 时的情况:

2001:983:e6ab:1:10d3:c8ad:4f1e:23f - - [27/Sep/2017:13:49:40 +0200] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36"

顺便说一句,我现在看到第一行是 ipV4 地址,第二行是 ipV6。这可能是(部分)问题吗?

您的编辑澄清了您的问题。你也应该允许你的虚拟主机监听 IPv6。

很简单:

server {
  listen [::]:80 ipv6only=off; # added line
  server_name ubuntu64;

  # the rest of your config
}

有用信息:ngx_http_core_module : listen documentation.

已添加:确保您的系统允许 IPv6 套接字在 IPv4+IPv6 模式下工作:

$ sysctl net.ipv6.bindv6only
net.ipv6.bindv6only = 0