【问题标题】:nginx port forwarding to port 80 from a running meteor app at port 3001nginx 端口从端口 3001 上正在运行的流星应用程序转发到端口 80
【发布时间】:2013-12-02 01:59:13
【问题描述】:

我正在我的 VPS 上的 3001 端口运行一个流星应用程序,并希望将其转发到端口 80。这是我的虚拟主机配置:

server
    {
            listen 80;
            server_name meteor.myDomain.com;
            root  /home/wwwroot/meteor.myDomain.com/leaderboard;
            include typecho.conf;
            location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
                    {
                            expires      30d;
                    }

            location ~ .*\.(js|css)?$
                    {
                            expires      12h;
                    }

            location /example {
               proxy_pass http://127.0.0.1:3001;
               proxy_set_header Host $host:80;
               proxy_set_header X-Real-IP $remote_addr;
               proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
               proxy_set_header X-NginX-Proxy true;
           }
            access_log off;
    }

当我在浏览器中键入“meteor.myDomain.com/example”时,我得到以下信息:

看起来我的端口转发成功了,但我想知道为什么我在请求 css 和 js 文件时得到 404?这两个文件位于 /example/programs/client 中。

当我输入“meteor.myDomain.com/example:3001”时,一切正常,所以我认为我的配置必须运行一些东西。任何人都可以帮忙吗?提前致谢。

【问题讨论】:

    标签: nginx meteor portforwarding


    【解决方案1】:

    为流星配置 nginx 可能会很棘手,因为根路径因请求 URL 的不同而不同(favicon vs bundled assets vs packaged assets)。

    你的根指令是这样说的:

    /style.css 可以在这里找到:/home/wwwroot/meteor.myDomain.com/leaderboard/style.css

    这显然是不对的(实际上在bundle/programs/client 下)。我建议仔细查看我的question and answer 以及示例gist。之后如果您有任何问题,我很乐意为您解答。

    【讨论】:

    • 非常感谢!我在另一篇文章中提到了你的问答,在要点中提到了这个例子。像魅力一样工作!
    猜你喜欢
    • 2021-12-12
    • 1970-01-01
    • 2019-05-27
    • 1970-01-01
    • 2013-12-08
    • 2017-07-18
    • 2016-10-16
    • 2012-02-12
    • 2013-01-27
    相关资源
    最近更新 更多