2018年9月26日水曜日

FreeBSD で nginx に挑戦してみた(その4:https 化と Digest 認証)

 前回,FreeBSD で nginx に挑戦してみた(その3)として,FreeBSD 上の nginx 設定の location コンテキストと,nginx で CGI を使うための方法について書いた。 今回は,https 化 (ssl モジュール)と Digest 認証について書いていこう。

http_ssl モジュールと https


https 化を行うには,まず nginx のインストール時に http_ssl モジュールを組み込まないといけない。そのためには
--with-http_ssl_module
オプションをつけてインストールしないといけない。 FreeBSD で /usr/ports/www/nginx/ からインストールする際には「HTTP_SSL」オプションをつけておかないといけない。

 そして,以下のように設定ファイル( /usr/local/etc/nginx/nginx.conf )に記載する必要がある。 下記の設定の青色の辺りがその設定部分である。 設定ファイル自体は前回示した CGI を使う場合の設定ファイルに https 化の部分( server ディレクティブ)を追加している。 そのため,通常の 80 番ポートへのリクエストを受信する server ディレクティブも残してある。

2018年9月20日木曜日

FreeBSD で nginx に挑戦してみた(その3:location コンテキストと CGI)

 前回,FreeBSD で nginx に挑戦してみた(その2)として,FreeBSD 上の nginx の主な設定と起動の方法について書いた。 今回は,location コンテキストと CGI について書いていこう。

location コンテキスト


まず location コンテキストの公式の説明は下記を見て欲しい。
 ・location コンテキスト:Module ngx_http_core_modulelocation 項目

location コンテキストは,nginx.conf(それ自体が main コンテキストとなっている)の中の http コンテキストの中の server コンテキストの中に置かれるコンテキストである(言葉で書くとややこしいなぁ…)。前回を見て欲しいが,nginx.conf では,http コンテキストで web サーバーとしての設定を記載する。その中には,複数の(仮想)サーバー(バーチャルホスト)を列挙することができ,(仮想)サーバー1個ごとに1つの server コンテキストを記載する。 server コンテキストの中では,どのポート宛のものに応答するかや,どのサーバー名宛のリクエストに応答するか,などを記載するが,その server に対するリクエスト URI( server 中の特定のディレクトリや特定の拡張子を持つファイルへのアクセス等を記載)にどのように応答するか,を記載するのが location コンテキストである。 そのため location コンテキストは通常は server コンテキスト中に複数(多数)存在することになる。

2018年9月15日土曜日

FreeBSD で nginx に挑戦してみた(その2:nginx の設定と初起動)

 前回,FreeBSD で nginx に挑戦してみた(その1)として,FreeBSD に nginx をインストールする話を書いた。 今回は,設定について書いていこう。

nginx の設定ファイルの場所と起動方法


 nginx の設定ファイルは,FreeBSD の場合は,
/usr/local/etc/nginx/
の下に置かれる。 ここにほぼすべての設定を書くイメージになるが,メインとなる設定は
/usr/local/etc/nginx/nginx.conf
である。

 その設定ファイルの前に,FreeBSD での起動方法について書いておこう。
FreeBSD では,まず /etc/rc.conf に以下を書かないといけない。
nginx_enable="YES"
これがないと,下記の起動コマンドを入れても起動してくれない。
 逆に,これを書いておくと,FreeBSD の起動時に nginx を自動で起動してくれる。

 起動や停止は,以下のように打てばよい。
 起動:service nginx start
 停止:service nginx stop
再起動:service nginx restart
再読込:service nginx reload


nginx 設定ファイルの構成要素:ディレクティブとコンテキスト


 さて,いよいよ nginx の設定ファイルの内容について書こう。これが結構量が多い。 ここでの話は Beginner’s Guide の中の「Configuration File’s Structure」に書いてある。

2018年9月13日木曜日

FreeBSD で nginx に挑戦してみた(その1:nginx のインストール)

 FreeBSD で web サーバーを上げている。 これまでサーバーアプリケーションとして,ずっと apache を使ってきたが,一度 nginx に挑戦したいと思っていた。 今回は,そのお話。

まずは,nginx について。

 nginx(エンジンエックス,と読むらしい)は,ロシアの人が開発したアプリケーションで,ウェブサーバー用のアプリケーションである。 他には apache が有名である。 違いは,apache がプロセス駆動なのに対して,nginx はイベンド駆動であり,多くのアクセスがある場合には nginx の方が圧倒的に有利らしい。 (詳しいことはわかってないので,ネットで調べてみてください)。

 うちのサーバーはそんなにアクセスがあるわけじゃないので,別に apache のままでもいいのだが,せっかくだから nginx を入れてみた,という次第。

nginx のドキュメントなど

 ・http://nginx.org/:公式サイト
 ・http://nginx.org/en/docs/:公式サイトの Document ページ
 ・NGINX wiki:サードパーティー製モジュールの説明はこちら
 ・Full Example Configuration:設定ファイルの(完全な?)例
 ・NGINX wiki (日本語):上記 wiki の日本語訳
 ・NGINX wiki (開始ページ):上記 wiki 日本語訳の「開始ページ」(何故かトップページのリンクからは飛べない…)

 ・nginxの最近のブログ記事:インフラエンジニアway:私にはわかりやすかった。

FreeBSD での nginx

 FreeBSD なので,ports からインストールしてみた。 FreeBSD の ports には nginx 関連は,
 ・/usr/ports/www/nginx
 ・/usr/ports/www/nginx-full
 ・/usr/ports/www/nginx-devel
 ・/usr/ports/www/nginx-lite
 ・/usr/ports/www/nginx-naxsi
がある。

2018年9月4日火曜日

ThinkPad E480 の HDD を SSD に換装して FreeBSD をいれてみた

 趣味で FreeBSD をいじっているが,そろそろサーバーとして使っているマシン(ノートPC)がへたりつつあるので,ThinkPad E480 を購入してみた。 ThinkPad にした理由は,比較的安かったから。Lenovo のサイトで直接買ったから,思ったよりも安かった。 Lenovo が中華系なのは少しだけ気になったが,安さに負けてしまった…。

 ThinkPad E480 を Lenovo の直販サイトで注文するとカスタマイズできる。 今回は予算との兼ね合いで,CUP は Intel Core i5-8520U (1.6GHz) にし,RAM は 8GB DDR4 2400MHz SSDIMM としてみた。 ディスプレイは気にしてなかったが,14" で 1920x1080 の解像度を持つ FHD液晶にした。 解像度の低いやつでよかったのだが,1ヶ月以上待たないといけないとあったのでやめておいた。 ストレージは高速な M.2 PCIe SSD も載せれるのだが,とりあえず 2.5" HDD (500GB, 7200rpm) にした。 これは,PCIe ほど高速じゃないけど HDD よりは少しだけ速い SATA の SSD に置き換えようと思っていたので,できるだけ安くと思った構成のつもり。 それでも HDD は回転数の高い方にしておいた。

 個人的には Windows はいらないのだが(どうせ FreeBSD 載せるし…),Windows 10 Home がついてきた。 また,当然のように Wi-Fi (ac/a/b/g/n) と Bluetooth 4.1 がついている(これまた使ってないけど…)。 もちろん LAN アダプター(有線)もあるが,DVD/Blueray 等の光学デバイスはついてない。 SD は Micro SD 用のスロットがついている。 また,画像チップは Intel UHD Graphics 620 らしい。 他の接続は,USB3.1 Type-C (Video-out 機能付き)、USB 3.0 (2個のうち1個は Powered USB)、HDMIを持っている。 この中の USB3.1 Type-C は,電源供給ポートでもあるので,電源アダプターをつないでいると USB ポートとして出力できないかもしれない…。 どうするんやろ?

2018年9月2日日曜日

Microsoft Edge の新規タブで開くと Unauthorized エラー

 これは 2018年9月の時点での話であり,もしかしたらすぐに解決するかもしれない。 何かというと,2018年9月の時点で Microsoft Edge で認証ありのページに飛べない事象が発生している。
その件について書こうと思う。

 ことの発端は,私が管理している「とあるページ」に PC からアクセスできない,と聞いたことから始まる。 アクセスできないのは大問題なので,とりあえず当該のページにアクセスしてみると,何の問題もなくアクセスできた。 しかし,アクセスできないという人がちょこちょこいる,という話だった。

そこで,よくよく聞いてみると,どうやら下記のような感じだった。
 (1) PC 上のブラウザでは Microsoft Edge でのみ発生している現象みたい。
 (2) リンク元のページから,「新しいタブ」や「新しいページ」でリンク先を開こうとすると「Unauthorized」エラーとなる。
   認証したくても,認証ためのマドが現れず,いきなり「Unauthorized」となる。
 (3) リンク元ページで「target="_blank"」の指定がされている場合にもいきなり「Unauthorized」とでる。
 (4) 他のブラウザ(Firefox,Chrome,Opera,Safari)ではおきない。
などであった。


(Unauthorized エラーの画面)