投稿日: | 最終更新日:
ConoHaのVPSにNginxインストール(CentOS7)
ConoHaVPSにNginx(エンジンエックス)をインストールし、ipアドレスで接続可能状態にします。
Nginxとは?
Nginxは、Apache(アパッチ)の代替となり得るWebサーバです。Apacheでは対応できない問題が起きたことがきっかけで、Nginxが作られました。
アクティブWebサイトの上位1000の41%は、Nginxで動いているという調査結果もあります。
NginxとApacheの違い
ApacheはHTTPのサービスに特化しています。ApacheはWebサービスに特化しており、Webサービスが使うであろう機能が初めからあります。その一方、Nginxは他のサービスにも柔軟に対応できます。そのため、Nginxはロードバランサのように利用することもできます。メールサーバに指示を出したりすることもできますので、ロードバランサとの相性も良好です。
Apacheのクライアント1万台問題
Apacheは一度の大量のアクセスがあった際に処理しきれず、レスポンスが悪くなる事例があります。このApacheが大量の同時アクセスに対処しきれないことは、「クライアント1万台問題」ともいわれています。
Nginxの設計思想
Nginxは、その企業で同時の大量アクセスを処理できるようなWebサーバーを作ろうと開発されました。Nginxは、Apacheの弱点を補うために設計されました。ネットの利用人口が増えてNginxの需要が高まりました。
Nginxは割り振り上手?
Nginxは早く処理するために作られているので、自分では重たい仕事をしません。他に割り振ることを得意としています。Apacheは重たい仕事も全部自分でこなすため、動作が遅くなります。
Nginxは軽い
また、Nginxは同時リクエストを多く処理することに特化しています。余計な機能はつけていないシンプルな構造で、メモリが少なく済みます。そのためクラウドサーバーなどでを使えば、少ないメモリ量でサーバーが立てれるので、コストを抑えられます。
Apache | Nginx |
---|---|
httpサービスに特化 | 同時リクエスト処理に特化 | Webサーバとしての機能が豊富 | 初めから多くの機能は無い | メモリ使用量が多い | メモリ使用量が少ない |
動的コンテンツはApacheが早い
とはいえ、動的コンテンツではApacheのほうが早いという説もあります。静的コンテンツ・ロードバランサはNginxを利用して、APIのような動的コンテンツはApacheを使おうと考えております。
参考:
作業の流れ
以下のような作業を行います。
- リポジトリの設定
- Nginxのサービス設定
- Nginxインストール
- firewallの設定
- 動作確認
数回のコマンドで実行できます。
準備
以下の準備を行います。
①ConoHaをレンタルします。
②ConoHaにroot以外のユーザを作ります。
③ConoHaにSSH接続するための設定を行います。
④ConoHaへのrootログインを禁止します。
⑤ConoHaのportを22から変更します。
必要なもの
レンタルサーバ | ConoHaのVPSサーバ |
---|---|
独自ドメイン | ムームードメインで、独自ドメインのみ取得。2年契約で(2,000〜3,000円)くらい? |
ConoHaVPSの環境
アプリケーションサーバ OS | CentOS7.4 |
---|---|
クライアントPC
操作開発用のクライアントPCを用意します。windowsでもmacでも可能ですが、今回はubuntuを利用します。
OS | Ubuntu 16.04.1 LTS 64bit |
---|
リポジトリの設定
yumでnginxをインストールする前に、リポジトリの設定が必要です。
①「nginx.repo」のファイルを作成します。
sudo vi /etc/yum.repos.d/nginx.repo
以下の内容を「nginx.repo」に記述します。
[nginx] name=nginx repo baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/ gpgcheck=0 enabled=1
Nginxインストール
①nginxをインストールします。
sudo yum install nginx
インストールしたNginxのバージョンを確認します。
nginx -v nginx version: nginx/1.15.3
Nginxのサービス設定
①自動起動設定を行います。
sudo systemctl enable nginx
②起動します。
sudo systemctl start nginx
③起動したか確認します。
sudo systemctl status nginx
firewallの設定
アクセスする前にファイアウォールを設定します。 CentOS7の初期状態では「firewalld」というファイアウォールが動作するようになっています。
①firewalld に httpd (80番ポート)への通信を許可します。
firewall-cmd --add-service=http --permanent
②firewalldを再起動します。
firewall-cmd --reload
Nginxの動作確認
何も設定をしない状態でNginxにアクセスをしてみます。「IPアドレス」でブラウザよりアクセスしてみてください。
①「http://xx-xx-xx(ConoHaVPSのグローバルipアドレス)/」でアクセスしてみました。
- Python 114
- 制作 54
- RaspberryPi 41
- Django 40
- WordPress 40
- Linux 27
- VPS 22
- JavaScript 21
- PHP 20
- HTML・CSS 19
- AWS 16
- 仮想環境 15
- レスポンシブデザイン 13
- マイコン 11
- WEB全般 11
- 動画製作 9
- Webサービス 8
- 統合開発環境 8
- 機械学習 8
- PyCharm 7
- jQuery 7
- AfterEffects 7
- 起業・設立 7
- Django REST framework 6
- C# 6
- デザイン 6
- SEO 6
- pydata 6
- Visual Studio 5
- 数学 5
- 携帯サイト 5
- heroku 5
- Mac 5
- illustrator 5
- node.js 5
- Anaconda 5
- Nginx 4
- Jupyter Notebook 4
- インフラ 4
- Google Colaboratory 4
- symfony 4
- Webスクレイピング 3
- photoshop 3
- Go言語 3
- PC 3
- ツール 3
- Docker 3
- facebook 3
- 作業効率化 3
- データベース 3
- Cloud9 3
- コマンド 2
- micro:bit 2
- Kali Linux 2
- Webサーバー 2
- MariaDB 2
- ドローン 2
- コンテナ 2
- DaVinci Resolve 2
- ネットワーク 2
- Java 2
- movie 2
- PCDJ 2
- 音楽 2
- XSERVER 2
- Ansible 1
- Vue.js 1
- JSON 1
- Bootstrap 1
- バージョン管理システム 1
- SSL 1
- S3 1
- ムームードメイン 1
- ネットワーク 1
- アニメーション 1
- D3.js 1
- Rhino 1
- アニメ 1
- git 1
- windows 1
- アクセス解析 1
- スマートフォン 1
- アフィリエイトノウハウ 1
- 知識 1
- TypeScript 1
- 役立つ本・書籍 1
- データサイエンス 1
- ESP32 1
- AI 1
- ownCloud 1
- API 1