部署 Rails 和 PHP 共存的问题

Peter · 2016年07月24日 · 最后由 peter 回复于 2016年07月24日 · 2247 次阅读

如果有新旧两个站:

A 服:新站,www.AAA.com 用 Rails, nginx B 服:旧站, www.BBB.com 用 php

AAA 站的网址就是 Rails 的典型路由 BBB 站的网址一般都是以 index.php 开头的,比如 http://www.BBB.com/index.php?x=a&y=b

我希望通过 A 服上的 nginx 代理其上的 Rails 网站,并反向代理 B 服上的 php 网站。看了文档配置了一下,但是没搞定,有没有高人指个路,谢谢。

nginx 配置如下:

upstream puma_AAA_production {
  server unix:/home/deploy/A/shared/tmp/sockets/puma_AAA.sock fail_timeout=0;
}


server {
  listen 80;
  server_name www.aaa.com;
  root /home/deploy/AAA/current/public;
  try_files $uri/index.html $uri @puma_AAA_production;

  client_max_body_size 4G;
  keepalive_timeout 10;

  error_page 500 502 504 /500.html;
  error_page 503 @503;

  location ^~ /index.php* {
    proxy_pass http://www.bbb.com/;
  }

  location @puma_AAA_production {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;

    proxy_pass http://puma_AAA_production;
    # limit_req zone=one;
    access_log /home/deploy/AAA/shared/log/nginx.access.log;
    error_log /home/deploy/AAA/shared/log/nginx.error.log;
  }
  。。。

加一行 header 搞定:

location ~ \.php$ {
  proxy_set_header Host www.bbb.com;
  proxy_pass http://www.bbb.com;
}
2 楼 已删除
需要 登录 后方可回复, 如果你还没有账号请 注册新账号