1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

こんにちは、すぎもんです:grinning:

今回は 2024年12月にリリースを予定している HULFT10 Smart Proxy を先行で触ってみました!

HULFT10 Smart Proxy は、HULFT通信を中継したり、外部ネットワークからHULFT10 Smart Proxyを経由してオンプレミスのHULFTに配信要求や送信要求できます。

※ HULFT10 Smart Proxyの他にNginxとPostgreSQLのインストールが必要です。

HULFT10 について紹介している公式サイトもあわせてご覧ください。

■ HULFT10 製品紹介ページ

【公式】HULFT10 Smart Proxy ガイド
 ※2024年11月11日以降公開予定

本資料は2024年9月開発中時点のリリース前モジュールでの環境構築ナレッジです。
設定内容等の細かい部分は変更になる可能性がある点、ご留意ください。

今回やること

HULFT10 Smart Proxy とNginx、PosgreSQLを導入して環境構築を行います。
最初に、WebサーバーアプリケーションのNginxの導入とモジュールの追加と証明書の配置、ファイルの設定等を行います。
次に、PosgreSQLの導入とデータベースの新規作成を行います。
最後に、HULFT10 Smart Proxyを任意のディレクトリーに展開し、各ファイルの設定と、セットアップコマンドの使用を行っていきます。

それでは早速やってみましょう!

image.png

実施手順

以下の流れでHULFT10 Smart Proxyの環境構築を行っていきます。

① Nginxの導入
1. Nginxの導入
2. 追加パッケージ
3. 追加モジュール
4. 証明書の配置
5. Nginxの設定
② PosgreSQLの導入
1. PosgreSQLの導入
2. データベースの作成
② HULFT10 Smart Proxyの導入
1. HULFT10 Smart Proxyの導入
2. 環境変数
3. APIサーバー設定ファイル
4. WSSサーバー設定ファイル
5. セットアップコマンド
6. 実行ファイルの作成

① Nginxの導入

先ずはWebサーバーアプリケーションの Nginx の導入から始めます。

Nginxの導入は、下記の手順で行っていきます。

  1. Nginxの導入
  2. 追加パッケージ
  3. 追加モジュール
  4. 証明書の配置
  5. Nginxの設定

1. Nginxの導入

nginx.org のサイトからバージョン1.24以降のNginxソースコードをダウンロードします。

wget http://nginx.org/download/nginx-1.24.0.tar.gz

※ 実行例
image.png

ダウンロードしたNginxを任意のディレクトリーに導入します。

./configure --prefix=/usr/local --conf-path=/(導入ディレクトリー)/nginx/conf/nginx.conf

このとき、必要なパッケージが不足しているとエラーが表示される場合があります。

./configure: error: the HTTP rewrite module requires the PCRE library.

上記の場合は、Nginxの導入に 必要なパッケージ を追加してください。
パッケージを追加したら、Nginxを導入し直してください。

2. 追加パッケージ

先述の Nginxの導入 で必要なパッケージが不足のエラーが表示された場合、パッケージの追加を行ってください。

■ openssl-devel 導入例

サンプル
yum install openssl-devel

※ 実行例
image.png

■ pcre-devel 導入例

サンプル
yum install pcre-devel 

※ 実行例
image.png

■ zlib-devel 導入例

サンプル
yum install zlib-devel

※ 実行例
image.png

3. 追加モジュール

Nginx にTCPを透過するためのモジュールを組み込みます。

./configure --with-http_ssl_module --with-stream
make
make install

※ 実行例
image.png

4. 証明書の配置

TLS 通信を行うために、サーバー証明書を任意のディレクトリーに配備します。
サーバー証明書については、正規のサーバー証明書を入手する必要があります。

入力例
mkdir /etc/certs
openssl req -new -newkey rsa:2048 -sha256 -days 365 -nodes -x509 -keyout /etc/certs/server.key -out /etc/certs/server.crt -subj "/CN=localhost" -addext "subjectAltName = DNS:localhost“
openssl genrsa -out cert.key 2048
openssl req -subj /CN=localhost -key cert.key -out cert.pem -new -x509
cp cert.key cert.pem /usr/local/nginx/conf

配備したサーバー証明書は、Nginxの設定ファイル(nginx.conf) で指定します。

5. Nginxの設定

NginxからHULFT10 Smart Proxy(Web API)またはHULFT10 Smart Proxy(WSS)に処理を振り分けるための設定を行います。
設定は、Nginxの設定ファイル (/(導入ディレクトリー)/nginx/conf/nginx.conf) にて行います。

※ 実行例
image.png

Web APIまたはWSSへの振り分け
本記事では、https 標準待ち受けポート(443)で受信した要求の振り分け について記載しています。

設定例
# HTTPS server
#
server {
    listen   443 ssl;
    server_name  localhost;
    
    ssl_certificate      cert.pem;
    ssl_certificate_key  cert.key;

    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;
    access_log /var/log/nginx/access.log;
    error_log  /var/log/nginx/error.log;

#    ssl_ciphers  HIGH:!aNULL:!MD5;
#    ssl_prefer_server_ciphers  on;
#
    # bind to api-server port
    location /api/ {
       proxy_pass   https://sp-api-server-001:41000;
    }
    # bind to wss-server port
    location /wss/ {
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
        proxy_pass   https://sp-wss-server-001:42000/;
    }
}

② PosgreSQLの導入

続いてPosgreSQLの導入を下記の手順で行っていきます。

  1. PosgreSQLの導入
  2. データベースの作成

1. PosgreSQLの導入

postgresql.orgのサイトからバージョン16以降のPostgreSQLをダウンロードします。
ダウンロードしたPostgreSQLを任意のディレクトリーに導入します。

※ 実行例
image.png

2. データベースの作成

導入したPostgreSQL に任意の名称でデータベースを作成します。

入力例
CREATE DATABASE hulsp;

※ 実行例
image.png

③ HULFT10 Smart Proxy の導入

最後に下記の手順で HULFT10 Smart Proxy の導入を行っていきます。

  1. HULFT10 Smart Proxyの導入
  2. 環境変数
  3. APIサーバー設定ファイル
  4. WSSサーバー設定ファイル
  5. セットアップコマンド
  6. 実行ファイルの作成

1. HULFT10 Smart Proxyの展開

任意のディレクトリーに HULFT10 Smart Proxy(hulft-smart-proxy-v100200.tar.gz) を展開します。

※ 実行例
image.png

2. 環境変数

HULFT10 Smart Proxyを導入したディレクトリーを 環境変数(HULFT_SMART_PROXY_HOME) に設定します。

※ 実行例
image.png

3. APIサーバー設定ファイル

APIサーバー設定ファイル(api-config.yml)では、HULFT10 Smart Proxy(Web API)を使用するために、サーバー関連の情報、ログおよびデータベース関連の項目を設定します。

※ 実行例
image.png

設定ファイルの更新は テキストエディタ で行います。

$HULFT_SMART_PROXY_HOME/etc/api-config.yml

■ APIサーバー設定ファイルの設定例
image.png

下記が設定項目になります。(※一部抜粋)

■ サーバー関連定義(server)

項目 内容 備考
port 41000 APIサーバーが起動する際に使用するポート番号
tls-cert-path /etc/certs/server.crt TLS通信を行うためのサーバー証明書のファイルパス
tls-key-path /etc/certs/server.key サーバー証明書に対応する秘密鍵のファイルパス

■ データベース関連定義(database)

項目 内容 備考
driver postgres データベースへの接続に使用するドライバー名
dbname hulsp アプリケーションで使用するデータベース名
user postgres データベースへの接続に使用するユーザー名
password postgres データベースへの接続に使用するパスワード
host localhost 接続するデータベースのホスト名
port 5432 接続するデータベースのポート番号

4. WSSサーバー設定ファイル

WSSサーバー設定ファイル(wss-config.yml)では、HULFT10 Smart Proxy(WSS)を使用するために、識別情報、通信、セキュリティ、ログおよびデータベース関連の項目を設定します。

※ 実行例
image.png

設定ファイルの更新はテキストエディタで行います。

$HULFT_SMART_PROXY_HOME/etc/wss-config.yml

■ WSSサーバー設定ファイルの設定例

image.png

下記が設定項目になります。(※一部抜粋)

■ 識別情報定義

項目 内容 備考
hostname localhost 自サーバーのホスト名
servicename demo 自サービスのサービス名

■ 通信関連定義

項目 内容 備考
inner-bind-ip 0.0.0.0 HULFTから接続するためのbind IPアドレス
inner-port 31000 HULFTに接続するための受付ポート
outer-bind-ip 0.0.0.0 WebSocketから接続するためのbind IPアドレス
outer-port 42000 WebSocketに接続するための受付ポート

■ セキュリティ定義

項目 内容 備考
tls-cert-path /etc/certs/server.crt サーバーがhttpsサーバーとして利用するSSL証明書
tls-key-path /etc/certs/server.key サーバーがhttpsサーバーとして利用するSSL秘密鍵

■ データベース関連定義

項目 内容 備考
dbDriver postgres データベースの接続に使用するドライバー名
dbname hulsp アプリケーションで使用するデータベース名
user postgres データベースへの接続に使用するユーザー名
password postgres データベースへの接続に使用するパスワード
host localhost 接続するデータベースのホスト名
port 5432 接続するデータベースのポート番号

5. セットアップコマンド

HULFT10 Smart Proxy のセットアップは 「初期セットアップ」「ライセンス登録」 で実行し、登録したライセンスを確認する場合は 「ライセンス一覧」 を行います。


■ 初期セットアップ
HULFT10 Smart Proxyの初期セットアップには、initコマンド を使用します。
setup init

■ ライセンス登録
HULFT10 Smart Proxyのライセンス登録には、activateコマンド を使用します。
setup activate -p (プロダクトキー) -s (シリアル番号) [-t 期間限定ライセンス]

■ ライセンス一覧
登録したライセンスを確認したい場合は、listコマンドを使用します。
setup list
出力例
$ setup list
HOST_NAME 
PRODUCT_KEY               SERIAL_NUMBER EXPIRY_PERIOD CREATED_AT
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ABCDEFG23456789ABCDE23456 1234567891234 ----------    2025-01-23T12:34:56+00:00
YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
789DEFG23456789ABCDE23456 9994567891234 ----------    2025-01-23T12:34:55+00:00

6. 実行ファイルの作成

HULFT10 Smart Proxy(Web API)HULFT10 Smart Proxy(WSS) の実行ファイルを作成します。

■ HULFT10 Smart Proxy(Web API)の実行ファイルの作成
$HULFT_SMART_PROXY_HOME/bin/ に、実行ファイルを作成します。
サンプル
#!/bin/bash
cd "$HULFT_SMART_PROXY_HOME/bin" || { echo "Failed to change directory.
Exiting.";exit 1;}
if [ ! -x "./hsp-api-server" ]; then
echo "./hsp-api-server is not executable. Exiting."
exit 1
fi
./hsp-api-server > /dev/null

■ HULFT10 Smart Proxy(WSS)の実行ファイルの作成
$HULFT_SMART_PROXY_HOME/bin/ に、実行ファイルを作成します。
サンプル
#!/bin/bash
cd "$HULFT_SMART_PROXY_HOME/bin" || { echo "Failed to change directory.
Exiting.";exit 1;}
if [ ! -x "./hsp-wss-server" ]; then
echo "./hsp-wss-server is not executable. Exiting."
exit 1
fi
./hsp-wss-server > /dev/null

POINT
実行ファイルには、実行権限を付与 する必要があります。

最後に

HULFT10 Smart Proxy とPostgreSQL、Nginxの導入を行ってみましたが、いかがだったでしょうか。
いよいよ2024年12月にリリースされるHULFT10のラインナップの1つである HULFT10 Smart Proxyです!皆様もぜひたくさん触ってみてください。

このブログでは、今後も様々なTopics記事や接続検証等、皆さんの役に立つような記事を投稿していきたいと思います!
ここまで読んでいただきありがとうございました。それでは、また!:raised_hand:

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?