M4のmacでnginx稼働

ローカルコンテンツ参照用のhtmlの原本が、windowsホストのvmware内ubuntu24と、google cloudで稼働するubuntu24のapacheにそれぞれある。

コンテナリンク
DjangoStatusDjangoのバージョンやDB接続状態表示へ
DjangoAppDjangoアプリのログイン画面へ
DjangoAdminDjangoアプリの管理画面へ

主に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ってあるからちょっと古い。
作者さんありがとう。参考に読ませてもらいました。

Macでnginxをインストールして起動する
MacでWebサーバnginxを立ち上げるための入門記事シリーズ初回です。 Webサーバとしての基礎知識、Macにnginxのインストール、基本構成や基本動作や設定など初期知識に必要な情報をまとめました。

インストールやってみる。しもた、ログ捨ててた・・・。

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 % 

ブラウザで表示確認

表示させたらこうなる。

mac-nginx

一番上のヘッダ読み込めてるし、真ん中のリンク先にマウスオーバしたらちゃんとコンテナのエンドポイントURLが見える。

htmlのソース表示させたらヘッダをインクルードさせて読みこんだ結果が見えとる。

わかりにくいけど、右下に丸い表記があってダークモードも扱えてるから、スタイルシートも読み込めてる。

apache進んで使わなくなった

macosがまだosxやった頃、sshとかミュージックの共有設定の中に、webのがあってapache使えてたはず。

sequoiaになってから設定画面探したけど、見つけられんかった。

apache設定項目多くてあんまり好きやないから、nginxでええんやけどね。

小さなテキストファイルにメモ書いといてもええんやけど、量が多くなって見づらいし誤って消したらツライ。

dockerやkubernetesをmac/linuxで扱うと、urlにポート番号指定するから煩雑になりやすいけど、html用意して書いとけば楽になる。

宅内のタブレットとかスマホからもデータ参照できるし、嫁にも見せやすいしな。

タイトルとURLをコピーしました