过去几天我一直试图将我的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。
答案 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端口的更多信息