ヘッダー画像

Synologyのnginx設定方法

投稿 2022年5月22日 最終更新 2022年5月22日 専門用語多め

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サーバを立ち上げたい人等に参考なればと思います。

以上、ここまで見ていただきありがとうございます。

皆さまの快適な開発ライフに、ほんの少しでもお役に立てれば幸いです。

コメント

この記事のコメントはありません。