首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Grunt Connect Proxy在浏览器中返回503 (服务不可用)

Grunt Connect Proxy在浏览器中返回503 (服务不可用)
EN

Stack Overflow用户
提问于 2015-06-16 00:02:58
回答 1查看 702关注 0票数 0

我正在使用一个yeoman生成器-angular应用程序和一个远程API,我的gruntfile配置似乎很好:

代码语言:javascript
复制
// Generated on 2015-06-01 using generator-angular 0.11.1
'use strict';
module.exports = function (grunt) {
  / * Removed for brevity */
  grunt.initConfig({
    yeoman: appConfig,
    watch: {
      / * Removed for brevity */
    },
    connect: {
      options: {
        port: 9000,
        hostname: 'localhost',
        livereload: 35729
      },
      proxies: [
        {
          context: '/api',
          host: 'subdomain.hostname.com',
          xforward: true,
          secure: false,
          headers: {
            'Authorization': 'RemovedToken'
          },
        }
      ],
      livereload: {
        options: {
          open: true,
          middleware: function (connect, options) {
            var middlewares = [require('grunt-connect-proxy/lib/utils').proxyRequest];

            middlewares.push(
                connect.static('.tmp'),
                connect().use('/bower_components',connect.static('./bower_components')),
                connect().use('/app/styles', connect.static('./app/styles')),
                connect().use(connect.static(appConfig.app))
            );

            return middlewares;
          }
        }
      },
      / * Removed for brevity */
    },
    / * Removed for brevity */
  });

  grunt.registerTask('serve', 'Compile then start a connect web server', function (target) {
    if (target === 'dist') {
      return grunt.task.run(['build', 'connect:dist:keepalive']);
    }

    grunt.task.run([
      'clean:server',
      'wiredep',
      'concurrent:server',
      'autoprefixer:server',
      'configureProxies:server',
      'connect:livereload',
      'watch'
    ]);
  });

  grunt.loadNpmTasks('grunt-connect-proxy');
};

grunt serve -verbose在发出请求时返回以下内容:

代码语言:javascript
复制
Proxied request: /api/foo/bar/?baz=6 -> http://subdomain.hostname.com:80/api/foo/bar/?baz=6
{
  "host": "localhost:9000",
  "connection": "keep-alive",
  "accept": "application/json, text/plain, */*",
  "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.124 Safari/537.36",
  "referer": "http://localhost:9000/",
  "accept-encoding": "gzip, deflate, sdch",
  "accept-language": "en-US,en;q=0.8,es;q=0.6",
  "cookie": "connect.sid=s%3AQpOp8pdI8GM2g8s0qCX602-ds-Xs-5le.C%2BrosIxHQ4ZcLLPgZKhABjji18kqK2K73C7mjF6scqM",
  "Authorization": "RemovedToken",
  "x-forwarded-for": "127.0.0.1",
  "x-forwarded-port": "9000",
  "x-forwarded-proto": "http"
}

我没有发现任何错误,也许“主机”仍然是localhost:9000,但我不确定这是否可能是一个问题,在Chrome中我得到: 503服务不可用,但确实有一个服务在运行,我知道因为我用Postman测试了它,一切正常,有人能帮我解决这个问题吗?也许我在配置中遗漏了什么?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2015-06-16 02:53:04

在深入研究了这个项目之后,我发现我还必须指定"host“头。

https://github.com/drewzboto/grunt-connect-proxy/issues/72

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30849809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档