Rust   |   Amazon Linux 2023 にプロキシーサーバーを設定して、Rust アプリケーションを動かす

ホーム  

概要

Amazon Linux 2023 にプロキシサーバーを設定して、Rust アプリケーションを動作させるまでの一連の流れを説明しています。

ホスト名の変更

EC2 や Lightsail のサーバーのホスト名はデフォルトで ip-xxx-xxx-xxx-xxxという形になっています。 それを任意のホスト名に変更します。


sudo hostnamectl set-hostname 新しいホスト名
sudo systemctl restart systemd-hostnamed
# 再ログイン後、設定したホスト名になっています。


nano で行番号を表示できるようにする


sudo nano /etc/nanorc
# 次の行を追加
set linenumbers


SQLite と Rust のインストール

このコーナーでは、データベースとして SQLite を使っています。


# apt の更新
sudo dnf update
sudo dnf upgarade
sudo dnf autoremove

# SQLite のインストール
sudo dnf install sqlite
sudo dnf install sqlite-devel

# Rust のインストール
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
1 と入力してエンター
sudo dnf install cargo
cargo --version
cargo 1.90.0


Httpd のインストール


sudo dnf install httpd

# httpd の設定をファイルを編集します。
sudo nano /etc/httpd/conf/httpd.conf
149行目:Options Indexes FollowSymLinks を Options FollowSymLinks に変更する。
156行目:AllowOverride None を AllowOverrid All に変更する。
169行目:DirectoryIndex index.html を DirectoryIndex index.html index.cgi index.php に変更する。
ファイルの最後に:ServerTokens Prod という行を追加する。

# httpd を開始します。
sudo systemctl start httpd
# httpd を自動起動するようにします。
sudo systemctl enable httpd

# ブラウザで IP アドレスにアクセスすると、It works! と表示されます。


プロキシサーバーの設定


# Amazon Linux 2023 はデフォルトでプロキシサーバーが有効になっています。
 
# プロキシサーバの設定
sudo nano /etc/httpd/conf/httpd.conf

<Location "/tera">
ProxyPass http://0.0.0.0:8080
ProxyPassReverse http://0.0.0.0:8080
</Location>

<Location "/askama">
ProxyPass http://0.0.0.0:3000
ProxyPassReverse http://0.0.0.0:3000
</Location>

# 設定を有効にします。
sudo systemctl restart httpd


SSH のインストール

Amazon Linux 2023 は、デフォルトで SSH がインストールされています。


Tera と Askama のインストール


sudo apt install git

git clone https://github.com/ユーザー名/tera_proxy.git
mv tera_proxy tera
cd tara
carog build --release
nohup ./target/release/tera &
# IP アドレス/tara、もしくはURL/tera で表示されます。

cd ..
git clone https://github.com/ユーザー名/askama_proxy.git
mv askama_proxy askama
cd askama
cargo build --release
nohup ./tatget/release/askama &
# IP アドレス/askama、もしくはURL/askama で表示されます。


index.html

index ページを作り替えます。

sudo nano /var/www/html/index.html

<!DOCTYPE html>
<html lang="ja">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Home</title>
  <link rel="stylesheet" href="/tera/static/style.css">
</head>
<body>
  <div class="container">
    <h1>Home</h1>
    <div><a href="/tera"><button>Tera</button></a></div>
    <div><a href="/askama"><button>Askama</button></a></div>
    <!--
    <div><a href="/task/public"><button>Task</button></a></div>
    <div><a href="/bbs/public"><button>BBS</button></a></div>
    <div><a href="/ledger/public"><button>Ledger</button></a></div>
    <div><a href="/cart/public"><button>Amazoness</button></a></div>
    -->
  </div>
</body>
</html>


Basic 認証

サイトに認証機能をつけます。


sudo nano /var/www/html/.htaccess

AuthUserFile /var/www/html/.htpasswd
AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
Require valid-user

パスワードは、 htpasswdファイル生成(作成) で作ります。

  1. ID にユーザー名を、Passwaord にパスワードを入力して、「生成」ボタンをクリックします。
  2. .htpasswd の欄に作られた文字列をコピーします。

sudo nano /var/www/html/.htpasswd

先ほどコピーした文字列をそのままペーストします。

httpd.con も変更します。


sudo nano /etc/httpd/conf/httpd.conf

<Location "/">
    AuthType Basic
    AuthName "Basic Authentication"
    AuthUserFile /var/www/html/.htpasswd
    Require user your_name
</Location>

# 設定を有効にします
sudo systemctl restart httpd

ブラウザを再起動してアクセスすると認証パネルが表示されると思います。
それでも表示されない場合は、ブラウザをリロードすれば認証パネルが表示されると思います。


SSH でデータ転送


# データの送信
scp -i .ssh/xxx.pem todo.db ユーザー名@xxx.xxx.xxx.xxx:~/tera
scp -i .ssh/xxx.pem test.db ユーザー名@xxx.xxx.xxx.xxx:~/askama

# データの取得
csp -i .ssh/xxx.pem ユーザー名@xxx.xxx.xxx.xxx.:~/tara/todo.db .
csp -i .ssh/xxx.pem ユーザー名@xxx.xxx.xxx.xxx.:~/askama/test.db .


その他のコマンド


# ルーターのグローバル IP アドレスを調べる
curl httpbin.org/ip

# URL の IP アドレスを確認する
nslookup example.com

# ホスト名を変更する
sudo hostnamectl set-hostname 新しいホスト名
reboot
# 再起動後、ターミナルを開くと新しいホスト名になっています。
# 都合により再起動できない場合は次のようにします。
sudo systemctl restart systemd-hostnamed  
# ターミナルを一度閉じて、もう一度開くとホスト名が変更されています。

# アプリケーションのアンインストール(設定や環境なども完全に削除する)
sudo apt purge xxxx



1036 visits
Posted: Oct. 07, 2025
Update: Oct. 07, 2025

ホーム   目次