しばやん雑記

Azure とメイドさんが大好きなフリーランスのプログラマーのブログ

IIS

ASP.NET MVC の Display Mode を使っている場合には Vary HTTP ヘッダーを出力するべきだった

ASP.NET MVC の Display Mode を使えば、ビューを用意するだけで PC 版とスマートフォン版のページを同じ URL で公開することができます。既に何回か紹介しているので、Display Mode については以下の記事を参考にしてください。機能としては上の記事の通り…

IIS の HTTP 圧縮モジュールは拡張可能らしいので bzip2 で圧縮するモジュールを作ってみた

IIS

IIS に組み込まれている HTTP 圧縮を行うモジュールはデフォルトで gzip / deflate を使うようになっています。このあたりの設定は applicationHost.config に書いてあるのですぐに分かります。scheme で dll を指定している点が気になったので、とりあえず …

IIS Express のサイト設定から存在しないものを一括で削除する

IIS

普段から Visual Studio と IIS Express を利用したアプリケーションの開発を行っていると、作成した分だけ IIS Express のサイト設定が一方的に追加されていきます。例として、普段使っているマシンの applicationHost.config を紹介しておきます。調べてみ…

ASP.NET の HTTP エラー画面の表示処理を IIS 側に統一する

以前に ASP.NET の customErrors と IIS の httpErrors の違いについて書きました。結局、この時には customErrors と httpErrors の両方を Web.config に追加するという結論に達しましたが、やはり二つを同時に設定するのは手間なので IIS 側に統一してみま…

URL Rewrite 2.0 と Application Request Routing 3.0 がアップデートされていました

IIS

松山から帰ってきてのんびりしていたら、Azure 界の抱かれたい男 No.1 こと @kosmosebi から ARR 3.0 がアップデートされたという情報を入手しました。arr3.0が新しくなったらしい— こすもす.えび (@kosmosebi) 2015年6月7日 疲れているんですが、気になった…

IIS 10.0 と ASP.NET 4.6 で HTTP/2 のサーバープッシュが使えるようになっていたので試した

IIS 10.0 で HTTP/2 のサーバープッシュに対応しているか分からないと書きましたが、実際には ASP.NET からサーバープッシュを簡単に行えるようになっていました。まずは HTTP/2 のサーバープッシュについての参考になる記事を紹介しておきます。初めてのHTT…

Windows Server Technical Preview 2 がリリースされたので IIS 10.0 について調べた

IIS

昨日行われた Ignite のキーノートで Windows Server 2016 について発表があり、Azure の仮想マシンで Technical Preview 2 が使えるようになっていたので、何時ものように IIS 周りだけ見ようかと思います。発表内容については、まとめる速度 No.1 の抱かれ…

URL Rewrite 2.0 と ARR 3.0 を Web PI からインストールした場合は Hotfix に注意したい

IIS

普段からとても簡単なので Web PI を良く使っていますが、こっそりと Hotfix がダウンロードセンターで公開されているケースがちらほらあったのでまとめます。具体的には Web PI からインストールした URL Rewrite 2.0 や ARR 3.0 に関して、いくつか Hotfix…

人生で初めて Azure Cloud Services の RoleEntryPoint で IIS の設定を弄った話

Azure Cloud Services の Web Role を使って IIS の設定を変更してみたかったので、田口社長のブログを検索して、その中の 1 つを参考にしつつ試しました。http://blogs.gine.jp/taka/archives/2846さすが安心と信頼の田口社長、クラウドサービスは全て田口…

IIS 8.5 でログに特定のクッキーだけを出力する

IIS

IIS ログに特定の名前のクッキーだけを書きだしたい人生だったので、URL Rewrite を使って実現してみました。IIS 8.5 からカスタムフィールドの追加が出来るようになったので、それを組み合わせます。考え方としては URL Rewrite でクッキーの値をサーバー変…

IIS に Application Request Routing (ARR) 向けのチューニングを試してみたのでメモしておく

IIS

パフォーマンス確認のために Application Request Routing (ARR) に適した設定を少しだけ探ってみました。結局 Nginx には余裕で負けたわけですが、試したメモとして残しておきます。Application Request Routing (ARR) と Nginx で機能とパフォーマンスを雑…

Application Request Routing (ARR) と Nginx で機能とパフォーマンスを雑に比較してみた

IIS

先日、Application Request Routing と Nginx の両方でロードバランサーを構築する話を書いたので、実際に動かしてみてパフォーマンスを調べてみました。構築を行った話については、以下のリンクを参照してください。IIS に Application Request Routing (AR…

IIS に Application Request Routing (ARR) をインストールしてロードバランサーを構築してみた

IIS

IIS と ARR を使って簡単なリバースプロキシを作るのはとても簡単だったので、今回は Server Farm を作成してロードバランサーを構築してみたいと思います。実際に作ってみる前は複雑そうな気がしていたんですが、実際には IIS Manager からあっさりと出来ま…

Application Request Routing (ARR) を使う場合に必ず設定しておきたい項目

IIS

最近は ARR を Azure に作成して遊んでいるので、デフォルトのままだと後で困りそうな設定を紹介しておきます。思ったより ARR の情報が少ないので頑張っていきたい。 クライアント IP アドレスの保存 ARR を使ってリバースプロキシを設定すると、アクセスさ…

HttpPlatformHandler に追加された processesPerApplication を検証してみた

IIS

HttpPlatformHandler に新しく追加された processesPerApplication の挙動が気になったので簡単に検証してみました。動かすアプリとしては手軽な Go を選びました。テンプレ的なコードですが、Martini を使った最低限のサーバーを用意します。 package main …

HttpPlatformHandler が IIS 8 以降の拡張機能として正式にリリースされていました

IIS

IIS Express についてフラフラと IIS 公式サイトを調べていたら、HttpPlatformHandler がダウンロード可能になっていることに気が付きました。HttpPlatformHandler v1.0 : The Official Microsoft IIS SiteHttpPlatformHandler については httpPlatformHandl…

IIS 7 以降でのアプリケーションプールと権限について調べた

IIS

今日、IIS 周りの設定を行っている時に「お前 ASP.NET/IIS の MVP のくせに IIS のこと何も知らないのかよ!」と説教され、そういえば IIS の上っ面しか使っていないと思ったので、理解が中途半端だったアプリケーションプールと権限について調べました。ち…

URL Rewrite の Outbound Rule を使って HTTP レスポンスヘッダを書き換える

IIS

IIS の URL Rewrite でリクエストの Origin を見て Access-Control-Allow-Origin を書き換えることが出来ないか調べました。仕様的にはスペース区切りで複数のオリジンを定義出来るみたいなんですが、どうも実装がまだ追いついていないブラウザもあるような…

httpPlatformHandler をもっと面白く使っていきたい

Azure Web サイトが Java に対応した時に同時に追加された httpPlatformHandler ですが、何か面白い使い方があると思うので軽くまとめておきます。まずはちょっと似てる ARR と httpPlatformHandler の違いから簡単に。 ARR の場合 ARR の役割はリバースプロ…

IIS で SSL 3.0 を無効にする方法

IIS

今朝は SSL 3.0 の脆弱性が話題になっていますね。ちなみに私も影響を受けました(死SSL 3.0に深刻な脆弱性「POODLE」見つかる Googleが対策を説明 - ITmedia ニュース困らされて悔しいので、SSL 3.0 を IIS で無効化する方法を調べました。相変わらずレジス…

Windows Server Technical Preview の IIS というか http.sys の HTTP/2 有効 / 無効を切り替える方法

IIS

Windows Server Technical Preview の IIS というか http.sys が HTTP/2 に対応していたらしい - しばやん雑記 では IIS に HTTP/2 周りの設定が無いと書きましたが、色々とほげほげした結果 http.sys には設定が見つかったので紹介しておきます。Microsoft …

Windows Server Technical Preview の IIS というか http.sys が HTTP/2 に対応していたらしい

Windows Server Technical Preview には正直あまり興味が無かったんですが、今日に IIS でも HTTP/2 が使えたという話が Twitter で流れてきたので早速 Azure の仮想マシンに入れて試しました。IISもHTTP2喋るぞ!! pic.twitter.com/keYrGk0baj— ゆき (@fla…

ASP.NET と IIS の HTTP エラー処理を理解する

以下のような ASP.NET アプリケーションのエラー画面を見たことない人は、ASP.NET 開発者にはいないと思います。この画面を本番環境では出すわけに行かないので普通はカスタマイズしますよね。しかし、ASP.NET では 404 をアプリケーション的に返しているの…

Windows Azure Web サイトの管理を IIS Manager から行えるようになったらしい

Kudu で applicationHost.config を見ているときに /InetMgr の設定があるなぁと思っていたら、IIS Manager から Web サイトの設定を行えるようになっていたようです。Remote Administration of Windows Azure Websites using IIS Manager - Windows Azure -…

Windows Azure Web サイトのリバースプロキシでエラーになった件を解決した話

Windows Azure Web サイトで Perl を動かそうとしたらリバースプロキシでエラーになる件 - しばやん雑記 の続きで、問題を解決できたのでメモしておきます。Web サイトのリバースプロキシである ARR 部分で 502 になってしまっていて、ログも出せずに原因不…

URL Rewrite でサブディレクトリへの書き換えを行うコツ

IIS

Windows Azure Web サイトなどで PHP を使ったアプリケーションを開発する際に、割と問題になるのがドキュメントルートです。PHP や Ruby などのフレームワークは public というディレクトリ内が HTTP から見えるという想定で作られています。つまり、public…

OWIN を加速させる IIS と Helios の関係

突如として公開された Helios という謎のライブラリを知っている人はどのくらいいますか?Twitter ではこちらのブログ記事が割とシェアされていたりするんですが、冒頭に書いてある通り MVP Global Summit のセッションで発表されたライブラリです。*1Checki…

IIS と Vary ヘッダと HTTP 圧縮モジュールのバグ

id:Waquesseix この記事を読んで早速vary: user-agentを追加しようと思ったら、なんかバグでvaryが変えられない(圧縮をオフにしない限り)みたいでがっくりしました。。。 ASP.NET でカスタム HTTP ヘッダを追加する方法 - しばやん雑記 そういえば、ASP.NET …

ASP.NET でカスタム HTTP ヘッダを追加する方法

機密情報を含むJSONには X-Content-Type-Options: nosniff をつけるべき - 葉っぱ日記この記事を見て、そういえば ASP.NET でカスタム HTTP ヘッダを追加する方法を知らないなと思ったので、Web.config だけで解決できないか調べてみました。結論から書くと…

IIS Express で仮想サイトに複数のホスト名を割り当てる

IIS

Web サービスの開発をしていると、デフォルトである localhost:12345 というホスト名ではなくて www.mydomain.com みたいに、ちゃんとしたホスト名でテストする必要が出てくると思います。特に Area をサブドメインに振っている場合などはテスト自体できない…