0

我正在开发一个 Web 应用程序,它将有两个部分在两个单独的域上运行(在 mydomain.com 上的 RoR 和在 sub.mydomain.com 上的另一台服务器)。在本地开发时,我可以在 localhost:port1 和 localhost:port2 上运行应用程序。

为了测试,修改我的 /etc/hosts 文件以使其工作很方便:

mydomain.com -> localhost:port1
sub.mydomain.com -> localhost:port2

有没有办法做到这一点?人们建议如何同时开发两者?

4

2 回答 2

2

hosts 文件完全不知道 TCP 端口。它仅用于名称到第 3 层分辨率。

mfussenegger 发布的解决方案很有趣,但我认为更容易提出的问题是:为什么有必要在不同的端口上运行它们?使用任何支持 HTTP 1.0 的 Web 服务器,您可以简单地将每个站点的主机标头定义为该站点的域名,请求将被路由到相应的站点。

您的主机文件将有两个条目都指向本地主机。

链接到有关如何配置的 apache 文档: http ://httpd.apache.org/docs/2.2/vhosts/examples.html

于 2012-06-10T05:27:17.897 回答
0

您必须运行像 nginx 或 apache 这样的网络服务器。nginx 配置可能如下所示:

server {
    listen          8080;
    server_name     mydomain.com

    root            /path/to/your/static/files;

    location    / {
        proxy_pass_header Server;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_pass http://127.0.0.1:8090;
    }
}

server {
    listen          8080;
    server_name     sub.mydomain.com

    root            /path/to/your/static/files;

    location    / {
        proxy_pass_header Server;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_pass http://127.0.0.1:8092;
    }
}

proxy_pass http://127.0.0.1:8092;作为您的 RoR 应用程序的 url。

于 2012-06-10T05:23:33.580 回答