Web技術と親しむ

Thoughts, stories and ideas.

Java

ThymeleafでReverse Proxyを使った際にURLを書き換える

tamuraです。

ローカルで開発しているときは問題なかったのに、 本番環境は reverse proxy を使っているので、 Thymeleafが生成するURLが違ってしまう場合がある、ということがあります。

/xxxx/app に来たアクセスを Tomcat の /app に横流しする

<Location /xxxx/app/>
  ProxyPass ajp://localhost:8009/app/
  ProxyPassReverse ajp://localhost:8009/app/
  ProxyPassReverseCookiePath /app/ /xxxx/app/
</Location>

このとき、このようなHTMLがあった場合

HTMlに書かれた内容

<a th:href="@{/next.html}">次へ</a>

通常であればこのようなHTMLが生成されます。

<a href="/app/next.html">次へ</a>

でも実際に生成してほしいHTMLはこのような形になります。

<a href="/xxxx/app/next.html">次へ</a>
続きを読む

JSFでReverse Proxyを使った際にURLを書き換える

tamuraです。

ローカルで開発しているときは問題なかったのに、 本番環境は reverse proxy を使っているので、 JSFが生成するURLが違ってしまう場合がある、ということがあります。

/xxxx/app に来たアクセスを Tomcat の /app に横流しする

<Location /xxxx/app/>
  ProxyPass ajp://localhost:8009/app/
  ProxyPassReverse ajp://localhost:8009/app/
  ProxyPassReverseCookiePath /app/ /xxxx/app/
</Location>
続きを読む

memcachedクライアントではまった件(後編)

tamuraです。

spymemcachedでバックアップサーバを使わない方法についてまとめました。

結論

失敗時の動作を再接続しないに定義します。

MemcachedClient client = new MemcachedClient(new DefaultConnectionFactory() {
    @Override
    public FailureMode getFailureMode() {
        return Failure.Cancel;
    }
    }, AddrUtil.getAddresses("host1,host2,host3"));

String message = (String)client.get("key");

続きを読む

memcachedクライアントではまった件(前編)

tamuraです

memcachedでクラスタリングをしたところ、思わぬ事象にはまりました。

  • memcachedサーバが落ちてもクライアントはその次のサーバを使う 
  • memcachedサーバが復活するともともとのサーバを使う
spymemcachedの検証を行っていてその事象が発生したので、「spymemcachedこのやろ~」と思い他の言語のmemcachedクライアントのソースを見てみると、他の言語のクライアントもそのような動きをしていました。

幸いにしてspymemcachedはこのバックアップサーバを使うという動きを止められます。

 続きを読む

DropwizardでGoogle Guiceを使う

tamuraです

DropwizardでGoogle Guiceを使ってDependency Injection(DI)を行いました。

DIを使った理由としてはデータベースコネクションを引き回したくなかったためです。

続きを読む

ブログトピックス
  • ライブドアブログ