Ruby on rails Rails应用程序和Wordpress博客在同一台服务器上-如何配置nginx?

Ruby on rails Rails应用程序和Wordpress博客在同一台服务器上-如何配置nginx?,ruby-on-rails,wordpress,nginx,digital-ocean,Ruby On Rails,Wordpress,Nginx,Digital Ocean,我有一个海洋水滴。在nginx和PostgreSQL数据库上运行Rails 5应用程序。我已经安装了PHP、MySQL和Wordpress(WP到/home/deployer/blog目录) 这是我的/etc/nginx/sites available/default: upstream unicorn { server unix:/home/deployer/apps/myapp/shared/sockets/unicorn.myapp.sock fail_timeout=0; } se

我有一个海洋水滴。在nginx和PostgreSQL数据库上运行Rails 5应用程序。我已经安装了PHP、MySQL和Wordpress(WP到
/home/deployer/blog
目录)

这是我的
/etc/nginx/sites available/default

upstream unicorn {
  server unix:/home/deployer/apps/myapp/shared/sockets/unicorn.myapp.sock fail_timeout=0;
}

server {
    listen 443 ssl;
    server_name myapp.com;

    ssl_certificate /etc/letsencrypt/live/myapp.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/myapp.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/ssl/certs/dhparam.pem;
    return 301 https://www.myapp.com$request_uri;
}

server {
  #listen 80 default deferred;
  listen 443 ssl; # managed by Certbot

  server_name www.myapp.com;
  root /home/deployer/apps/myapp/current/public; # rails app

  location ^~ /assets/ {
    gzip_static on;
    expires max;
    add_header Cache-Control public;
  }

  location ~ ^/(robots.txt|sitemap.xml.gz)/ {
    root /home/deployer/apps/myapp/current/public;
  }

  try_files $uri/index.html $uri @unicorn;
  location @unicorn {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header   X-Forwarded-Proto https; # added because of looping
    proxy_redirect off;
    proxy_pass http://unicorn;
  }

  # I added this blog for the WP blog
  location /blog {
    index index.php;
    try_files $uri $uri/ /blog /index.php?$args;
  }

  error_page 500 502 503 504 /500.html;
  client_max_body_size 4G;
  keepalive_timeout 10;

  ssl_certificate /etc/letsencrypt/live/myapp.com/fullchain.pem; # managed by Certbot
  ssl_certificate_key /etc/letsencrypt/live/myapp.com/privkey.pem; # managed by Certbot
  include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
  ssl_dhparam /etc/ssl/certs/dhparam.pem;

  if ($scheme != "https") {
    return 301 https://$host$request_uri;
  } # managed by Certbot
}
修改此配置文件后重新启动nginx并转到
www.myapp.com/blog
,我只收到Rails错误页面,上面说您要查找的页面不存在。

我找到了很多关于如何修改nginx配置以使WP博客在子域上工作的文章,但仍然找不到适合我的正确方法


你知道我做错了什么,为什么nginx不加载WP,而只是加载Rails应用吗?

你至少需要定义fastcgi\u pass或其他php代理。但无论如何,不要认为有一种简单的方法可以在同一个域名上实现这一点,使用特定的域和子域要容易得多。然后,对于每个单独的服务器块,您都需要执行相同的操作。你能做到吗?你至少需要为php的东西定义fastcgi_pass或其他php代理。但无论如何,不要认为有一种简单的方法可以在同一个域名上实现这一点,使用特定的域和子域要容易得多。然后,对于每个单独的服务器块,您都需要执行相同的操作。你能做到吗?