如何控制Meteor运行的位置

Kev*_*eal 11 localhost amazon-ec2 meteor

我正在我的AWS EC2(微)实例上安装Meteor(框架)并按照说明操作,在创建测试项目后,我meteor在该目录上运行,给了我预期的

[[[[[ /var/www/html/meteortest ]]]]]

Running on: http://localhost:3000/
Run Code Online (Sandbox Code Playgroud)

但是我无法在浏览器中导航到我的服务器的localhost来查看hello world示例项目.有没有办法让流星像以下一样工作:

http://mydomain.com/meteortest/
Run Code Online (Sandbox Code Playgroud)

要么

http://mydomain.com/meteortest:3000
Run Code Online (Sandbox Code Playgroud)

HGa*_*dhi 11

Meteor设置ROOT URL的方法是使用名为ROOT_URL的环境变量:

http://docs.meteor.com/#meteor_absoluteurl

所以你可以这样运行你的Meteor实例:ROOT_URL ="http://mydomain.com/"meteor --port 80

但是,如果您希望从文件夹(例如http://mydomain.com/meteortest)提供流星实例,则必须使用nginx转发端口(请参阅Tyr的示例),但要替换该行:

location / {
Run Code Online (Sandbox Code Playgroud)

有:

location /meteortest {
Run Code Online (Sandbox Code Playgroud)

并适当地改变你的ROOT_URL.如果您仍然无法从外部访问您的域,则可能没有为EC2正确设置安全组.你必须打开端口80.有关如何执行此操作的更多信息,请访问:http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/using-network-security.html


Tyr*_*Tyr 7

您可以将nginx设置为代理端口3000到您的域.就像是:

server {
  listen 80;
  server_name meteortest.mydomain.com;
  access_log /var/log/nginx/meteortest.access.log;
  error_log /var/log/nginx/tmeteortest.error.log;
  location / {
    proxy_pass http://localhost:3000;
    include /etc/nginx/proxy_params;
  }
}
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅http://wiki.nginx.org/HttpProxyModule.

但是,在端口3000上运行meteor是一个开发环境.如果你想在生产中使用它,请运行" meteor bundle ",然后按照生成的tarball中的README.