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サーバを立ち上げたい人等に参考なればと思います。
以上、ここまで見ていただきありがとうございます。
皆さまの快適な開発ライフに、ほんの少しでもお役に立てれば幸いです。