2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

RHEL 8 での nginx のインストール

Last updated at Posted at 2020-08-16

1.インストール環境

RHEL 8.2 を使用しました。
nginx 自体は、感覚的になんなくうろ覚えで導入できますが、1年ぶりくらいにやると周辺コマンドや、firewall の部分など忘れがちになるのでメモ書きです。

# cat /etc/redhat-release 
Red Hat Enterprise Linux release 8.2 (Ootpa)
#

2.hostname の設定

# ホスト名の設定
$ hostnamectl set-hostname myhost.example.com

# 設定の確認
$ hostnamectl status

3.nginx のインストール

$ yum install -y nginx  

もしくは yum のフォーク版であり後継である dnf を使って

$ dnf install -y nginx  

4.nginx の基本コマンド

systemctl で操作できます。
作業時のコピペ用に基本的なコマンドをリストしておきます。

# 起動
$ systemctl start nginx  

# 停止
$ systemctl stop nginx  

# 再起動
$ systemctl restart nginx  

# 状況を確認
$ systemctl status nginx  

# 自動起動を設定
$ systemctl enable nginx   

# 自動起動を解除
$ systemctl disable nginx   

# 自動起動設定確認
$ systemctl list-unit-files -t service | grep nginx

5.nginx の起動

yum でインストールしただけで、nginx はデフォルトページを使って起動できます。

# nginx の 起動
 systemctl start nginx  

これで後は、http://<ホスト名>/
にアクセスすれば稼働が確認出来ます。

# アクセスを確認
 $ curl -s http://localhost  | grep Welcome

Memo: 
-s で、silent モードにして、HTTP response だけの出力にして転送情報等を出さないように
grep Welcome で、Welcome の HTMLソース部分だけを表示(動いている事を確認できればいいので)

ただし、デフォルトのRHELの設定では Firewallに阻まれて、サーバー外からはページを見る事はできないはずです。

6.Firewall のポート開け

RHELのデフォルトの設定では Firewalld が稼働していて nginx の使用する 80/443 も閉じているため Firewallのポートを空けてあげる必要があります。

6.1.現在の設定の確認

現在の設定を確認します。

RHEL8を入れたばかりの素の状態であれば、ここは読み飛ばして「http/httpsの穴を開ける」に飛んでも大丈夫です。
Firewallの設定は、NIC(Network Interface Card) 毎に「Zone」というグループを作って管理されています。

# NIC 毎に割り当てられている firewall の Zone を確認する。 
$ firewall-cmd --get-active-zones
libvirt
  interfaces: virbr0     # これはdefault で動いている仮想 NIC。今回は関係無い。
public
  interfaces: ens192    # こちらが外に向かって生えている NIC. "public" という zone 名が割り当てられている事がわかる。

Memo:
NIC が2枚ある場合は、デフォルトでは両方とも public の zone に設定されていた。

とりあえず、設定が必要なのは「public」のゾーンであると記憶します。
次は「public」に設定されている「サービス」を確認します。

# public の firewall の service を確認する。
$ firewall-cmd --list-services --zone=public
cockpit dhcpv6-client ssh   # 「cockpit」「dhcpv6-client」「ssh」3つのサービスが登録されている。

見た目から何となく HTTP/HTTPS が Firewalld のルールに登録されてない事が感じられます。
http と https というサービス(事前定義されている名前が存在しています)を追加します。

6.2.http / https の穴を開ける

Firewall に http と https の穴を開けます。

# http と https を Firewalld に追加する
$ firewall-cmd  --add-service=http --zone=public 
$ firewall-cmd  --add-service=https --zone=public 

Memo:
-zone を指定しない場合は、[firewall-cmd --get-default-zone]で返ってくる default の zone に設定される。
 
# 新しい設定を永続化させます。
$ firewall-cmd --runtime-to-permanent
success
2
4
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
2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?