ローカルコンテンツ参照用のhtmlの原本が、windowsホストのvmware内ubuntu24と、google cloudで稼働するubuntu24のapacheにそれぞれある。
コンテナ | リンク |
---|---|
DjangoStatus | DjangoのバージョンやDB接続状態表示へ |
DjangoApp | Djangoアプリのログイン画面へ |
DjangoAdmin | Djangoアプリの管理画面へ |
主に3種類のコンテナが、x86/arm64のdocker/kubernetesで動いてて、smb共有をapache公開してたりjupyterlabとかルータへのURLもある。
節電してM4のmacだけで動かす場面もあるから、mac側にnginx入れて、ローカルコンテンツ参照用のhtml使うことにした。
10年前のlinuxはapacheで使いはじめたけど、軽いから今はnginxやな。
UTMで動かしてる仮想ホストのmacの中やなくて、物理ホストのmac miniの中で準備してく。
nginxのインストール
brew使えるんかなって探してみたら、解説してる方がおられた。
バージョンが1.17ってあるからちょっと古い。
作者さんありがとう。参考に読ませてもらいました。
インストールやってみる。しもた、ログ捨ててた・・・。
brew install nginx
brewでinfo確認すると、バージョンとか、使い方とか、設定ファイルの置き場の情報が見える。
2025年1月はバージョンが新しいめになってるからか、設定ファイルの場所が/usr/local/etc/nginx/nginx.conf
やなくなってる。
nari@narimac-mini ~ % brew info nginx
==> nginx: stable 1.27.3 (bottled), HEAD ⭐️バージョンは1.27なんやね
HTTP(S) server and reverse proxy, and IMAP/POP3 proxy server
https://nginx.org/
Installed
/opt/homebrew/Cellar/nginx/1.27.3 (27 files, 2.5MB) *
Poured from bottle using the formulae.brew.sh API on 2025-01-05 at 13:29:24
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/n/nginx.rb
License: BSD-2-Clause
==> Dependencies
Required: openssl@3 ✔, pcre2 ✔
==> Options
--HEAD
Install HEAD version
==> Caveats
Docroot is: /opt/homebrew/var/www ⭐️ドキュメントルートはここなんや
The default port has been set in /opt/homebrew/etc/nginx/nginx.conf to 8080 so that ⭐️このへんに設定ファイルあるらしい
nginx can run without sudo.
nginx will load all files in /opt/homebrew/etc/nginx/servers/.
To restart nginx after an upgrade:
brew services restart nginx ⭐️こうしたらサービス再起動できるんやな
Or, if you don't want/need a background service you can just run:
/opt/homebrew/opt/nginx/bin/nginx -g daemon\ off\;
==> Analytics
install: 12,379 (30 days), 39,623 (90 days), 165,156 (365 days)
install-on-request: 12,322 (30 days), 39,534 (90 days), 164,721 (365 days)
build-error: 11 (30 days)
nari@narimac-mini ~ %
nginx設定ファイルの用意とサービス起動
設定ファイルはデフォルトのを.orgって名前で保管しといて、書きたいことだけ足す。ssiを有効にしてヘッダを読み込ませる。
nari@narimac-mini ~ % cd /opt/homebrew/etc/nginx/
nari@narimac-mini nginx % diff nginx.conf nginx.conf.org
3d2
< user nari; ⭐️nginxの稼働プロセスオーナ指定
37c36
< listen 80; ⭐️8080なんか使わず宅内のweb公開やから80でええ
---
> listen 8080;
39d37
< ssi on; ⭐️ヘッダのhtmlをincludeしたいねん
nari@narimac-mini nginx %
サービス起動しとく。念のためポート状態も確認。
nari@narimac-mini nginx % brew services start nginx
==> Successfully started `nginx` (label: homebrew.mxcl.nginx)
nari@narimac-mini nginx % lsof -c nginx -P | grep LISTEN
nginx 4859 nari 6u IPv4 0xdd109b56a94c9eb8 0t0 TCP *:80 (LISTEN)
nginx 4862 nari 6u IPv4 0xdd109b56a94c9eb8 0t0 TCP *:80 (LISTEN)
nari@narimac-mini nginx %
ちゃんと80番で待ち受けてくれてる。
htmlの準備
用意したファイルはこんな感じ。index.html
からHeader.html
をインクルードさせることにしてて、commonフォルダにあるcss読ませながら使う。
nari@narimac-mini www % pwd
/opt/homebrew/var/www ⭐️置き場はここ
nari@narimac-mini www % ls -lha
total 64
drwxr-xr-x 7 nari admin 224B 1 6 04:15 .
drwxrwxr-x 7 nari admin 224B 1 5 14:06 ..
-rw-r--r-- 1 nari admin 74B 1 6 03:35 .htaccess
-rwx------@ 1 nari admin 4.5K 1 5 14:23 Header.html
drwx------ 4 nari admin 128B 1 6 03:35 common
-rwx------@ 1 nari admin 17K 1 5 06:04 index.html
nari@narimac-mini www %
ファイルは丸々コピーしてきて、Header.html
の中のcssの参照先がubuntu24になってる箇所をmacのURLに変えとく。
宅内DNSでFQDN名を有効にしてるから、ubuntu24側でこうあった箇所を、
<link rel="stylesheet" href="http://nafslinux.intra.gavann-it.com/common/css/gvis.css">
こう変えて、nafslinux
ってあったのをnarimac-mini
にした。
<link rel="stylesheet" href="http://narimac-mini.intra.gavann-it.com/common/css/gvis.css">
隠しファイルの.htaccess
はapacheで使ってたそのまんま。apacheからnginxにしてもそのままにしといた。
nari@narimac-mini www % cat .htaccess
Options +Includes
AddHandler server-parsed html
Options +IncludesNOEXEC
nari@narimac-mini www %
参照させたいindex.html
の最初のほうに、こう書いてあるからさっきのssiがきいてくる。
nari@narimac-mini www % head -8 index.html
<!-- GVISヘッダここから -->
<!--#include virtual="Header.html"-->
<!-- GVISヘッダここまで -->
<body>
<center>
nari@narimac-mini www %
ブラウザで表示確認
表示させたらこうなる。
一番上のヘッダ読み込めてるし、真ん中のリンク先にマウスオーバしたらちゃんとコンテナのエンドポイントURLが見える。
htmlのソース表示させたらヘッダをインクルードさせて読みこんだ結果が見えとる。
わかりにくいけど、右下に丸い表記があってダークモードも扱えてるから、スタイルシートも読み込めてる。
apache進んで使わなくなった
macosがまだosxやった頃、sshとかミュージックの共有設定の中に、webのがあってapache使えてたはず。
sequoiaになってから設定画面探したけど、見つけられんかった。
apache設定項目多くてあんまり好きやないから、nginxでええんやけどね。
小さなテキストファイルにメモ書いといてもええんやけど、量が多くなって見づらいし誤って消したらツライ。
dockerやkubernetesをmac/linuxで扱うと、urlにポート番号指定するから煩雑になりやすいけど、html用意して書いとけば楽になる。
宅内のタブレットとかスマホからもデータ参照できるし、嫁にも見せやすいしな。