Synologyのnginx設定方法

投稿 2022年5月22日

更新 2022年5月22日

専門用語の数:

Synologyのnginx設定方法

~ 目次 ~

Synologyのnginx

確認バージョン

設定の構成

設定のincludeまとめ

nginxコマンド

WEBサーバとして使いたい

証明書

実際の設定ファイル

まとめ

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


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

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

コメント一覧

コメントがまだありません

コメントを投稿してみる

コメント(必須※500文字以内)

お名前(必須※30文字以内)

※日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)