Close icon
2019月10日17日

さくらの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

1017 12:03:01 os3-364-15435.vs.sakura.ne.jp systemd[1]: Starting nginx - high performance web server...
1017 12:03:01 os3-364-15435.vs.sakura.ne.jp systemd[1]: Failed to parse PID from file /var/run/nginx.pid: Invalid argument
1017 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のページが表示されました。



アトトックラボとは

株式会社アトトックメンバー が技術の話、デザインの話、キャラクターの話、ときどき脱線してガジェットの話やライフハックの話など好きなことを書いています。


連載記事


最近の記事


タグ