如何将nginx中的一个域转发到不同的子目录(php,rails)?

时间:2015-01-23 11:45:24

标签: ruby-on-rails nginx

我拥有一台用于开发的VPS服务器,它运行在Ubuntu服务器14.04 x64 LTS上。我有一些RoR网站和一些Wordpress网站。我想通过git将它们推送到不同的目录来与它们一起玩。 这意味着我应该在xxx.xxx.xxx.xxx/myrailsweb中有一个rails网站,在xxx.xxx.xxx.xxx/mywpweb中有另一个wordpress网站。如何使用nginx中的服务器块实现此目的?

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    root /usr/share/nginx/html;
    index index.php index.html index.htm;

    server_name 127.0.0.1;

    location /apps/testphp {
        try_files $uri $uri/ =404;
    }

    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

server {
  listen 80 default_server;
  # server_name 127.0.0.1;
  passenger_enabled on;
  passenger_app_env development;
  root /home/myname/apps/testapp/public;
}

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

将它们放在不同的端口上。所以127.0.0.1:3000转到rails网站,127.0.0.1转到wordpress或类似的东西。所以使用你的例子:

server {
  listen 3000;
  server_name 127.0.0.1;
  passenger_enabled on;
  passenger_app_env development;
  root /home/myname/apps/testapp/public;
}

在实时服务器上,然后只使用子域。