如何将Rails配置为Wordpress的子目录

时间:2019-03-28 19:40:07

标签: ruby-on-rails wordpress apache

我想将我的apache服务器配置为在主页上运行Wordpress,在子目录上运行我的Rails应用程序。我的意思是:

mysite.com->转到Wordpress

mysite.com/app->转到Rails

我该怎么做?

2 个答案:

答案 0 :(得分:1)

<VirtualHost>
    ServerName mysite.com

    ProxyPass / https://localhost:8000/
    ProxyPassReverse / https://localhost:8000/


    ProxyPass /app http://localhost:3000/
    ProxyPassReverse /app http://localhost:3000/
</VirtualHost>

从Apache:

  

除了作为“基本” Web服务器并为最终用户提供静态和动态内容外,Apache httpd(以及大多数其他Web服务器)还可以充当反向代理服务器,也称为反向代理服务器。一个“网关”服务器。

     

在这种情况下,httpd本身不会生成或托管数据,   但是内容是由一台或多台后端服务器获得的,   通常不直接连接到外部网络。如   httpd收到来自客户端的请求,该请求本身已被代理   到这些后端服务器之一,然后该后端服务器处理请求,   生成内容,然后将该内容发送回httpd,后者   然后将实际的HTTP响应返回给客户端。

因此,您的后端将运行两个单独的服务器:Wordpress和Rails。我们只是从本质上更改了相关端口并将请求传递给了。然后将内容返回给Apache,Apache会生成正确的HTTP响应。

答案 1 :(得分:0)

阅读本文以进行解释。 click here 需要两件事

  
      
  1. 更改application.rb文件
  2.   
module YourAPPName
  class Application < Rails::Application
    config.relative_url_root = '/runthisinrubyonrails'
    # some other configuration code
  end
end
  
      
  1. 更改nginx配置
  2.   
upstream unicorn_sock {
  server your_sock_path;
}

server {
root <path_to_your_rails_app>/public;
location @proxy_rails_app {
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header Host $http_host;
  proxy_redirect off;
  proxy_pass http://unicorn_sock;
}
location /runthisinrubyonrails/ {
  alias <path_to_your_rails_app>/public/;
  try_files $uri @proxy_rails_app;
}
try_files $uri @proxy_rails_app;
 some other configuration code
}