我想将我的apache服务器配置为在主页上运行Wordpress,在子目录上运行我的Rails应用程序。我的意思是:
mysite.com->转到Wordpress
mysite.com/app->转到Rails
我该怎么做?
答案 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 需要两件事
- 更改application.rb文件
module YourAPPName
class Application < Rails::Application
config.relative_url_root = '/runthisinrubyonrails'
# some other configuration code
end
end
- 更改nginx配置
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
}