Synologyのnginx設定方法
Synologyのnginx
まずSynologyのベースシステムとして、「nginx」が使用されています。
そのためパッケージというわけではないです。(むしろ消せないです)
実際にSynologyで使われているnginxの設定を見てみました。
通常のnginxとそこまで変わらないですが、ひとつ注意する点は「設定が元に戻る」ことです。
Synology自体の再起動により、設定がデフォルト状態に戻ります。
もちろんSynologyのアップデートを行っても再起動が伴うので、設定が元に戻ります。
ベースシステムになっているので、アップデートでSynology側が設定を変更できるようにするためでしょう。
そのためnginxに設定を施すのはすこし工夫が必要です。
確認バージョン
これからの説明等は以下のバージョンでの説明です。
バージョンによって変わることがあるのでご了承ください。
サーバー | バージョン |
---|---|
Synology | 7.1-42661_update1 |
nginx | 1.20.1 |
設定の構成
nginxの設定ファイルは以下のパスにあります。
/etc/nginx/nginx.conf
また、nginxのエラーログは以下のパスにあります。
/var/log/nginx/error.log
設定内容にはDSMのアクセスポートである設定があります。
DSMのhttpアクセス、DSMのhttpsアクセスがあり、
さらに通常のwebアクセスで使用される80番ポートや443ポートもあります。
ただ上記でも紹介した通り、このnginx.confがリセット対象です。
もしSynologyのnginxに何かしら手で設定を加えたい場合、
この設定ファイルに記載しても消されてしまうので、
この設定ファイルから読み込まれているファイルに記載します。
設定のincludeまとめ
結構includeしている設定が多いですが、代表的なものをまとめておきます。
メインの設定
include conf.d/main.*.conf;
※シンボリックリンクなので実際は
「/usr/local/etc/nginx/conf.d/main.*.conf」です。
eventsの設定
include conf.d/events.*.conf;
※シンボリックリンクなので実際は
「/usr/local/etc/nginx/conf.d/events.*.conf」です。
httpの設定
include sites-enabled/*;
※シンボリックリンクなので実際は
「/usr/local/etc/nginx/sites-enabled/*」です。
nginxコマンド
コマンドも本家とほぼ変わりません。
そのためよく使うものだけまとめておきます。
ベースシステムとして起動しているので、あまり停止や再起動は行わない想定です。
設定ファイルの構文チェック
nginx -t
停止せず設定適用
nginx -s reload
WEBサーバとして使いたい
SynologyのnginxをWEBサーバとして使うことも可能です。
もともと入っている80,443ポートの設定は、デフォルトサーバ設定なので、
「server_name」の設定を適切に行うことで、80,443ポートを使用できます。
何度も言いますが、リセットされるのでsites-enabledのパスに設定してください。
証明書
暗号化通信(SSL)を構築するための証明書を指定する場合は、以下のパスを参照ください。
デフォルトの証明書
/usr/syno/etc/certificate/system/default/
デフォルト以外の証明書
/usr/syno/etc/certificate/_archive/ランダム文字列/
実際の設定ファイル
実際に設定ファイルの中身を記載しておきます。
バージョンによって変わりますし、参考程度に・・・。
※あまりにも長いので結構割愛してます。
/etc/nginx/nginx.conf
# Copyright (c) 2000-2017 Synology Inc. All rights reserved.
worker_processes auto;
#worker_cpu_affinity auto;
worker_rlimit_nofile 65535;
include conf.d/main.*.conf;
events {
use epoll;
multi_accept on;
accept_mutex off;
worker_connections 1024;
include conf.d/events.*.conf;
}
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log off;
#access_log syslog:server=unix:/dev/log,facility=local7,tag=nginx_access,nohostname main;
error_log syslog:server=unix:/dev/log,facility=local7,tag=nginx_error,nohostname error;
# 設定もろもろ
server {
listen 5000 default_server;
listen [::]:5000 default_server;
server_name _;
# 設定もろもろ
}
server {
listen 5001 default_server ssl;
listen [::]:5001 default_server ssl;
server_name _;
# 設定もろもろ
}
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
# 設定もろもろ
}
server {
listen 443 default_server ssl;
listen [::]:443 default_server ssl;
server_name _;
# 設定もろもろ
}
include conf.d/http.*.conf;
include sites-enabled/*;
}
まとめ
Synologyで使われているnginxについてまとめてみました。
SynologyでWEBサーバを立ち上げたい人等に参考なればと思います。
以上、ここまで見ていただきありがとうございます。
皆さまの快適な開発ライフに、ほんの少しでもお役に立てれば幸いです。