在没有Tomcat的情况下为生产设置太阳黑子

时间:2015-04-21 22:56:37

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

过去几天我一直试图将我的Rails应用程序转移到生产模式,但我遇到了一个障碍,太阳黑子不想进入生产阶段。

我在多个地方看到你应该使用独立的 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实例时,欺骗太阳黑子以为它在生产模式下运行。

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

1 个答案:

答案 0 :(得分: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端口的更多信息

相关问题