<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>shellfly (shellfly)</title>
    <link>https://ruby-china.org/shellfly</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>使用 Nginx 和 json-server 搭建测试服务器</title>
      <description>&lt;p&gt;App 开发时经常需要构造数据测试各种逻辑，最直接的办法时直接请求一个拥有和线上环境一样数据的测试服务器，可以随时改掉用户数据的各种状态，方便测试，不过这就需要维护一个独立的测试服务器，修改数据也不是很方便。而且往往在开发时，需要修改可能只是很少的一部分，如果可以指定自己想要修改的 API 对应的返回数据，其他 API 还是正常请求线上环境，这样测试起来会方便很多。&lt;/p&gt;
&lt;h2 id="json-server"&gt;json-server&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.com/typicode/json-server" rel="nofollow" target="_blank" title=""&gt;json-server&lt;/a&gt;是一个可以快速构造假数据的 REST API 服务器，他的文档很全，需要注意的是，他只接受 json 格式的请求，在用 Postman 这种工具测试 POST 和 PUT 这种方法时，需要设置&lt;code&gt;Content-Type&lt;/code&gt;为&lt;code&gt;application/json&lt;/code&gt;。&lt;/p&gt;

&lt;p&gt;只有 json-server 还不够，json-server 里面只是我们想要 mock 的数据，当收到其他请求时，我们希望可以 fallback 到线上的环境去请求数据，这时候就需要 Nginx 出场。&lt;/p&gt;
&lt;h2 id="Nginx"&gt;Nginx&lt;/h2&gt;
&lt;p&gt;Nginx 的一大功能就是用来做反向代理，我们需要搭建一个 HTTP 服务器，他会先请求 json-server，如果有对应的结果，就直接返回，否则就 fallback 到线上的环境去请求数据。&lt;/p&gt;

&lt;p&gt;配置文件：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;upstream apps {
    server localhost:3000;
    server example.com backup;
}

server {
    listen       80;
    server_name  local.example.com;

    location / {
        proxy_pass http://apps;
        proxy_next_upstream error timeout http_404;
        proxy_set_header Host example.com;
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;线上的环境需要设置成 backup，这样请求过来时总是先请求本地的 json-server，如果 json-server 返回了 404，则继续请求线上的环境。本地的 server name 需要和线上的环境在同一个 Domain 下面，这样才能共享 cookie。&lt;/p&gt;

&lt;p&gt;原文：&lt;a href="http://shellfly.org/blog/2015/10/31/build-a-test-server-by-nginx-and-json-server/" rel="nofollow" target="_blank" title=""&gt;使用 Nginx 和 json-server 搭建测试服务器&lt;/a&gt;&lt;/p&gt;</description>
      <author>shellfly</author>
      <pubDate>Sun, 01 Nov 2015 00:14:54 +0800</pubDate>
      <link>https://ruby-china.org/topics/27908</link>
      <guid>https://ruby-china.org/topics/27908</guid>
    </item>
    <item>
      <title>第一个 Rails 作品，日语爱好者的社区</title>
      <description>&lt;p&gt;前几天刚过了日语二级，写了一个日语爱好者的社区。coding 了 2 个月，把雏形做出来了，还有一些想要的功能没加，不过基本上可以用了。&lt;/p&gt;

&lt;p&gt;后端了用最新的 Rails 4.2 和 PostgreSQL 9.4, 前端用了比较轻量级的 skeleton。mina 部署起来比 capistrano 舒服多了。&lt;/p&gt;

&lt;p&gt;不知道 ruby-china 有多少对日语感兴趣的，欢迎注册试用提意见。&lt;/p&gt;

&lt;p&gt;网址：&lt;a href="http://wanshiu.com/" rel="nofollow" target="_blank"&gt;http://wanshiu.com/&lt;/a&gt;&lt;/p&gt;</description>
      <author>shellfly</author>
      <pubDate>Mon, 09 Feb 2015 23:02:21 +0800</pubDate>
      <link>https://ruby-china.org/topics/24187</link>
      <guid>https://ruby-china.org/topics/24187</guid>
    </item>
  </channel>
</rss>
