【发布时间】:2018-02-15 06:22:54
【问题描述】:
我有一个 Ruby on Rails 应用程序和一个托管在不同 EC2 实例上的 Wordpress 博客。
我正在尝试使 Wordpress 博客像 Rails 应用程序的子文件夹(example.com/blog 而不是 blog.example.com),以实现更好的 SEO
- 可以通过http和https访问Rails应用(http是重定向到https)
https://www.nginx.com/resources/admin-guide/reverse-proxy/
我尝试使用 nginx 反向代理功能,我认为这是我现在最好的选择,但我的尝试没有成功。
- 博客主页按预期打开 (example.com/blog),但 没有 CSS。
- 带有争论的 URL (example.com/blog/args) 将我重定向回 Rails 应用程序 (example.com/args)
我在 wp-config.php 中将所需的博客网址设置如下:
define('WP_SITEURL', 'https://www.example.com/blog');
define('WP_HOME', 'https://www.example.com/blog');
这是我使用的 nginx 配置:
location ^~ /blog {
proxy_pass http://<<BLOGIP>>/blog;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
-
https://github.com/waterlink/rack-reverse-proxy
我也试过 rack-reverse-proxy gem 但得到了相同的结果
为了实现自动扩展、冗余和部署目的,Rails 应用程序和 Wordpress 博客保持分离非常重要。
如果有其他方法可以实现这一点,我愿意接受建议。
【问题讨论】:
-
你能不能先让你的博客直接使用
https://www.example.com/blog然后proxy_pass会更容易 -
@TarunLalwani 不,我使用亚马逊上的预构建映像安装了它
-
@TarunLalwani 我已经设法将 /blog 路由到它的服务器上的 Wordpress。你是说现在 nginx 配置应该可以正常工作了?
-
是的,如果它现在在那里工作,nginx 反向代理也应该工作
-
@TarunLalwani 它正在工作,但不加载 css 和 js,因为 chrome 说它不安全。我的 Rails 应用程序使用 SSL,而 Wordpress 没有。你知道我该如何解决这个问题吗?
标签: ruby-on-rails wordpress url nginx reverse-proxy