【问题标题】:Setting up Sunspot for Production without Tomcat在没有 Tomcat 的情况下为生产设置 Sunspot
【发布时间】:2015-04-21 22:56:37
【问题描述】:

在过去的几天里,我一直在尝试将我的 Rails 应用程序转入生产模式,但遇到了障碍,Sunspot 不想转入生产模式。

我在多个地方看到您应该使用独立的 Solr 安装并在 Tomcat 后面运行它,但是通过我尝试过的 20 个左右的教程,我一直无法让它正常工作 - 我的 log/production.log 中的所有 Solr 请求都得到 404。

有没有办法让纯黑子在生产中运行?如果这是非常hacky和不好的做法,我不介意 - 我只是希望它运行而不必再次经历所有这些外部安装的痛苦。

我尝试的一件事是将我的 config/sunspot.yml 切换为如下所示:

production:
  solr:
    hostname: localhost
    port: 8982
    log_level: WARNING
    path: /solr/development
    # read_timeout: 2
    # open_timeout: 0.5

development:
  solr:
    hostname: localhost
    port: 8982
    log_level: INFO
    path: /solr/development

test:
  solr:
    hostname: localhost
    port: 8981
    log_level: WARNING
    path: /solr/test

虽然这似乎不起作用。这种类型的解决方案似乎很有希望——当它真正使用开发 solr 实例时,诱使 sunspot 认为它在生产模式下运行。

有关服务器设置的信息: 2 个 Rails 应用程序,一个在文档根目录中(www.bla.com 是一个应用程序),另一个在子URI 中(www.bla.com/my-broken-搜索应用程序)。我在 Ubuntu 12.04 上使用 Phusion Passenger 和 Apache。

【问题讨论】:

    标签: ruby-on-rails tomcat ubuntu solr sunspot


    【解决方案1】:

    由于您没有提供足够的信息,我只能提供一个可能适合您的问题的解决方案。由于Tomcat默认运行在端口号8080上,您应该将您的config/sunspot.yml文件更改为

    production:
      solr:
        hostname: localhost
        port: 8080
        log_level: WARNING
        path: /solr/development
        # read_timeout: 2
        # open_timeout: 0.5
    

    但是很有可能会与其他程序发生端口冲突。有时我们只需要更改 Tomcat 端口号。在How to change Tomcat default port ?上获取有关如何更改 Tomcat 端口的更多信息

    【讨论】:

      猜你喜欢
      • 2015-02-18
      • 2012-03-09
      • 1970-01-01
      • 1970-01-01
      • 2016-06-28
      • 1970-01-01
      • 2013-10-17
      • 2018-02-04
      • 2014-04-04
      相关资源
      最近更新 更多