如何在本地网络上为meteor app配置Passenger

时间:2017-09-27 10:06:33

标签: nginx meteor passenger

我在使用Phusion Passenger在我的局域网上部署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地址;如果我键入servername(“ubuntu64”)。如果我这样做,我会收到来自Ngnix的欢迎页面以及“需要进一步配置”的消息。

我应该如何更改配置,以便我可以使用servername打开应用程序,或者更确切地说使用“servername / appname”打开应用程序,因为我计划在同一台服务器上托管多个meteor应用程序。

编辑:来自日志文件/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"

BTW,我现在看到第一行有一个ipV4地址,第二行有一个ipV6。这可能是(问题的一部分)吗?

1 个答案:

答案 0 :(得分:1)

您的修改已澄清您的问题。您也应该允许虚拟主机监听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