さくらのVPSでCentOS 7にnginxをインストール
さくらのVPSでCentOS 7にyumでnginxをインストールします。
リポジトリの設定インストール方法については 公式サイトに記載されているので公式サイトの手順を参考に進めてみます。
事前準備
yumのユーティリティをインストールします。
$ sudo yum install yum-utils
yum リポジトリの設定にnginxを追加
/etc/yum.repos.d/nginx.repoを作成しリポジトリの設定を追加します。
$ sudo vi /etc/yum.repos.d/nginx.repo
公式サイトでと同様にnginx.repoに下記の設定を追加します。
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
設定を有効化する
mainlineのリポジトリを使用するので下記のコマンドで有効化します。
$ sudo yum-config-manager --enable nginx-mainline
読み込んだプラグイン:fastestmirror, langpacks
================================================================================ repo: nginx-mainline ================================================================================
[nginx-mainline]
async = True
bandwidth = 0
base_persistdir = /var/lib/yum/repos/x86_64/7
baseurl = http://nginx.org/packages/mainline/centos/7/x86_64/
cache = 0
cachedir = /var/cache/yum/x86_64/7/nginx-mainline
check_config_file_age = True
compare_providers_priority = 80
cost = 1000
deltarpm_metadata_percentage = 100
deltarpm_percentage =
enabled = 1
enablegroups = True
exclude =
failovermethod = priority
ftp_disable_epsv = False
gpgcadir = /var/lib/yum/repos/x86_64/7/nginx-mainline/gpgcadir
gpgcakey =
gpgcheck = True
gpgdir = /var/lib/yum/repos/x86_64/7/nginx-mainline/gpgdir
gpgkey = https://nginx.org/keys/nginx_signing.key
hdrdir = /var/cache/yum/x86_64/7/nginx-mainline/headers
http_caching = all
includepkgs =
ip_resolve =
keepalive = True
keepcache = False
mddownloadpolicy = sqlite
mdpolicy = group:small
mediaid =
metadata_expire = 21600
metadata_expire_filter = read-only:present
metalink =
minrate = 0
mirrorlist =
mirrorlist_expire = 86400
name = nginx mainline repo
old_base_cache_dir =
password =
persistdir = /var/lib/yum/repos/x86_64/7/nginx-mainline
pkgdir = /var/cache/yum/x86_64/7/nginx-mainline/packages
proxy = False
proxy_dict =
proxy_password =
proxy_username =
repo_gpgcheck = False
retries = 10
skip_if_unavailable = False
ssl_check_cert_permissions = True
sslcacert =
sslclientcert =
sslclientkey =
sslverify = True
throttle = 0
timeout = 30.0
ui_id = nginx-mainline/7/x86_64
ui_repoid_vars = releasever,
basearch
username =
nginxをインストール
$ sudo yum install nginx
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: ftp.yz.yamagata-u.ac.jp
* epel: ftp.yz.yamagata-u.ac.jp
* extras: ftp.yz.yamagata-u.ac.jp
* updates: ftp.yz.yamagata-u.ac.jp
nginx-mainline | 2.9 kB 00:00:00
nginx-stable | 2.9 kB 00:00:00
(1/2): nginx-stable/7/x86_64/primary_db | 49 kB 00:00:01
(2/2): nginx-mainline/7/x86_64/primary_db | 156 kB 00:00:01
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ nginx.x86_64 1:1.17.4-1.el7.ngx を インストール
--> 依存性解決を終了しました。
依存性を解決しました
======================================================================================================================================================================================
Package アーキテクチャー バージョン リポジトリー 容量
======================================================================================================================================================================================
インストール中:
nginx x86_64 1:1.17.4-1.el7.ngx nginx-mainline 767 k
トランザクションの要約
======================================================================================================================================================================================
インストール 1 パッケージ
総ダウンロード容量: 767 k
インストール容量: 2.7 M
Is this ok [y/d/N]: y
Downloading packages:
警告: /var/cache/yum/x86_64/7/nginx-mainline/packages/nginx-1.17.4-1.el7.ngx.x86_64.rpm: ヘッダー V4 RSA/SHA1 Signature、鍵 ID 7bd9bf62: NOKEY ] 172 kB/s | 500 kB 00:00:01 ETA
nginx-1.17.4-1.el7.ngx.x86_64.rpm の公開鍵がインストールされていません
nginx-1.17.4-1.el7.ngx.x86_64.rpm | 767 kB 00:00:02
https://nginx.org/keys/nginx_signing.key から鍵を取得中です。
Importing GPG key 0x7BD9BF62:
Userid : "nginx signing key <signing-key@nginx.com>"
Fingerprint: 573b fd6b 3d8f bc64 1079 a6ab abf5 bd82 7bd9 bf62
From : https://nginx.org/keys/nginx_signing.key
上記の処理を行います。よろしいでしょうか? [y/N]y
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
インストール中 : 1:nginx-1.17.4-1.el7.ngx.x86_64 1/1
----------------------------------------------------------------------
Thanks for using nginx!
Please find the official documentation for nginx here:
* http://nginx.org/en/docs/
Please subscribe to nginx-announce mailing list to get
the most important news about nginx:
* http://nginx.org/en/support.html
Commercial subscriptions for nginx are available on:
* http://nginx.com/products/
----------------------------------------------------------------------
検証中 : 1:nginx-1.17.4-1.el7.ngx.x86_64 1/1
インストール:
nginx.x86_64 1:1.17.4-1.el7.ngx
完了しました!
nginxを自動起動にする
OSの起動時にnginxが自動起動するように設定します。
$ sudo systemctl enable nginx
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
nginxを起動
enginxを起動します。
$ sudo systemctl start nginx
nginxの状態を確認してみます。
$ sudo systemctl status nginx
● nginx.service - nginx - high performance web server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
Active: active (running) since 木 2019-10-17 12:03:01 JST; 1min 1s ago
Docs: http://nginx.org/en/docs/
Process: 1412 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
Main PID: 1413 (nginx)
CGroup: /system.slice/nginx.service
├─1413 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
└─1414 nginx: worker process
10月 17 12:03:01 os3-364-15435.vs.sakura.ne.jp systemd[1]: Starting nginx - high performance web server...
10月 17 12:03:01 os3-364-15435.vs.sakura.ne.jp systemd[1]: Failed to parse PID from file /var/run/nginx.pid: Invalid argument
10月 17 12:03:01 os3-364-15435.vs.sakura.ne.jp systemd[1]: Started nginx - high performance web server.
ファイアウォールの設定
firewalld.serviceの状態を確認すると起動していません。
$ systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
firewalld.serviceを起動します。
$ sudo systemctl start firewalld.service
firewalld.serviceの状態を確認するとactiveになっているのでOK
firewalld.serviceを自動起動するように設定
$ sudo systemctl enable firewalld.service
httpとhttpsを許可する
$ sudo firewall-cmd --zone=public --add-service=http --permanent
$ sudo firewall-cmd --zone=public --add-service=https --permanent
$ sudo firewall-cmd --reload
設定を確認する
$ sudo firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: dhcpv6-client http https ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
この状態でブラウザからアクセスしてみるとページが表示できないが
ローカルからcurlコマンドで実行するとnginxのページが取得できる。
$ curl http://IPアドレスを指定
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
試しにポート80番を指定してみる
$ sudo firewall-cmd --add-port=80/tcp --zone=public --permanent
$ sudo firewall-cmd --reload
これでもダメなのでポート80番の設定を削除して元に戻す
$ sudo firewall-cmd --remove-port=80/tcp --zone=public --permanent
$ sudo firewall-cmd --reload
さくらのVPSのコントロールパネルでパケットフィルタの設定
さくらのVPSのコントロールパネルでパケットフィルタの設定を確認すると接続可能ポートがSSH(22)だけ設定されている。
ファイアウォールの設定はサーバー側で設定するので、パケットフィルタの利用設定は利用しないに設定してみます。
この状態でブラウザからアクセスするとnginxのページが表示されました。