ApacheとNginxの共存 #1


 

今回(1回目)の内容

1.なぜ共存させる必要があるのか
2.大前提条件
3.Nginxのインストール
~~~~~~~~~~~~~~~~~~~ここまで今回
4.Nginxの初期設定
5.ApacheとNginxの競合をなおす

次回: ApacheとNginxの共存 #2(準備中)

 

1.なぜ共存させる必要があるのか

自分は慣れ親しんだApacheをWeb Serverとして使いたい

Nginxのhttpsリバースプロキシ機能+内部リダイレクトを使いたい

Apacheでも出来なくはないが、自分のスキルでは難しかったので…(本末転倒)
プログラミングやってるとあるあるな気がするので気にしたら負け

 

2.大前提条件

  1. ポートが被ってはいけない
  2. httpsの証明書は存在する
  3. OSはUbuntu 22.04 LTS Serverを使用
  4. Apacheの設定は変えないでNginxの設定のみで行う

 

3.Nginxのインストール

 

Code 1:

Ubuntuでは普通にNginxをaptでインストールすると、古いバージョンが入ってしまう。(1.18が入るが最新は1.22)
そこで以下のコードで、公式のレポジトリを使う設定にする。

Bash

解説

何をしているかを解説していく。

1.必要な依存関係のインストール
そのまま。

2.署名鍵の取得とバイナリへの変換。
署名鍵をcurlコマンドで取得。
gpgコマンド+dearmorオプションで取得した署名鍵の形式をtxtからバイナリに
変換。
teeコマンドでバイナリ形式の署名鍵を書き込み。
teeコマンドを使うのは、書き込むファイルの変更にはroot権限が必要なため。
“>”は書き込みの際にsudoをつけられないので、teeコマンドを使っている。
(rootで行うなら、gpgコマンドの後は > /usr/share/keyrings/nginx-archive-
keyring.gpgでも可。)
“> /dev/null” は、teeコマンドは書き込んだ内容を表示してくれる機能が付いて
いるが、邪魔なので/dev/null(文字列のゴミ箱のような場所)に出力している。
付けなくても問題はないが、よく分からない文字列が出てくる。


3.署名鍵のインポート
そのまま。表示して鍵が書き換えられていたり、間違っていたりしないか確認
する。

Code 2:


aptのパッケージ検索にNginx公式レポジトリがヒットするように変更する。

Bash

解説その2

まず、echoコマンドで書き込む内容を出力する。書き込む内容は:
deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/ubuntu `lsb_release -cs` nginx
これは、リンクに実際にアクセスするとわかる。

後ろに/が入っていないファイル(Packages.gz, Release.new, Sources.gz)に、
「このシステムの人はこのファイルをダウンロードしてください。」
といった情報が書かれています。
apt updateでそれを見に行くように促すのが、
sudo tee /etc/apt/sources.list.d/nginx.list
となっている。

Code 4:

パッケージインデックスを更新してインストールする。

Bash

これでインストールは完了!

 

終わりに

今回はここまでです。
次回はいよいよNginxの設定と競合の解消をやっていこうと思います。

初心者なので何か間違い等ありましたらお知らせしていただけると嬉しいです。

(参考:https://nginx.org/en/linux_packages.html#Ubuntu)


Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です