王者apache
を蹴落したnginx
にWEBサーバーを乗り換えることにした。正直、
Airsonic1も、
Nextcloudも自分専用なので、乗り換えたところでパフォーマンスがどうとかは期待してないが、慣れておくという意味で。
構成としては以下のようになっている。
アプリ | URL | ディレクトリ |
---|---|---|
Welcome | https://example.f5.si2 | /var/www/html |
Airsonic | https://example.f5.si/airsonic | /var/airsonic |
Nextcloud | https://example.f5.si/nextcloud | /var/www/nextcloud |
ApacheからNginxは徐々に移行可能
まずは、apache
とngnix
を両方インストールして大丈夫なのか?という点については問題なかった。同時起動はできないが、片方を止めておけば、設定ファイル時代は別々なので、移行作業を少しずつ進めることができた。
また、Ubuntuの場合は、ユーザー・グループもwww-data
なので、ファイル、ディレクトリの権限などを変更する必要もなかった。ユーザーは/etc/nginx/nginx.conf
の一行目にuser www-data;
と指定されていた。
Welcoma
まずはNginxのWelcome画面は以下のような感じで表示できた。3
/etc/nginx/sites-available/example.f5.si
server {
listen 80;
listen [::]:80;
server_name example.f5.si;
}
# Default server configuration
#
server {
listen 443 default_server;
listen [::]:443 default_server;
# SSL configuration
#
# listen 443 ssl default_server;
# listen [::]:443 ssl default_server;
#
# Note: You should disable gzip for SSL traffic.
# See: https://bugs.debian.org/773332
#
# Read up on ssl_ciphers to ensure a secure configuration.
# See: https://bugs.debian.org/765782
#
# Self signed certs generated by the ssl-cert package
# Don't use them in a production server!
#
# include snippets/snakeoil.conf;
root /var/www/html;
# Add index.php to the list if you are using PHP
index index.nginx-debian.html index.html index.htm;
server_name example.f5.si;
ssl on;
ssl_certificate /etc/letsencrypt/live/example.f5.si/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.f5.si/privkey.pem;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
}
Airsonic
いよいよ Airsonicの設定。 まず、ぶち当ったのが、多くの例は一サーバーに一設定ファイルのような記述をしているために、同じサーバーに載るアプリの設定を同じように書くと、設定項目が重複して、警告が出てしまうこと。
2021/10/09 00:13:44 [warn] 20698#20698: conflicting server name "example.f5.si" on 0.0.0.0:80, ignored
2021/10/09 00:13:44 [warn] 20698#20698: conflicting server name "example.f5.si" on [::]:80, ignored
default_server
や_
などにしてもエラーになってしまう。
2021/10/09 10:28:45 [error] 959#959: *1 rewrite or internal redirection cycle while processing "/nextcloud/index.php/nextcloud/status.php", client: 192.168.0.241, server: _, request: "GET /nextcloud/status.php HTTP/1.1", host: "example.f5.si"
2021/10/09 02:00:57 [warn] 23848#23848: conflicting server name "default_server" on 0.0.0.0:443, ignored
2021/10/09 02:00:57 [warn] 23864#23864: conflicting server name "default_server" on 0.0.0.0:443, ignored
ファイルを分割する際はこうしたそもそもhostname
項目などは書かなきゃいいのだろうけど、Airsonic用、Nextcloud用と分けていると、エラーが出たときに調査しにくい。
airsonic.conf 、 nextcloud.conf とファイルを分けずに、 example.f5.si にまとめて追記することにした。
ともあれ、基本 Setting up Nginx - Airsonicの設定どおりにやれば何とか起動した。
location /airsonic {
root /var/airsonic;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header Host $http_host;
proxy_max_temp_file_size 0;
proxy_pass http://127.0.0.1:8080;
proxy_redirect http:// https://;
}
を足しただけ。設定例と異なるのはroot /var/airsonic;
を追記したぐらい。ただ、この一行を追記するということに辿りつくまでに難儀したのだが、これで
Airsonicは無事、動くようになった。例によって長くなったので
続く。