ホーム >  Python >  VagrantでCentOS7 + Python + Django環境を作る(その4 nginx)


Posted:2017/07/04 9:00:49 AM|Category : Python

VagrantでCentOS7 + Python + Django環境を作る(その4 nginx)

Vagrantを使い、WebフレームワークであるDjangoを環境を作ります。今回は、Webサーバーアプリケーションのnginxをインストールします。

仮想環境にnginxをインストール

nginxは、Webサーバーアプリケーションです。最も有名なWebサーバーアプリケーションにApacheがあります。nginxはApacheに比べて処理が軽く、大量のリクエストを処理するのに向いています。ただしnginxは、CPUリソースがたくさん必要な処理には向いていません。

準備

Vagrantでゲスト環境(仮想環境)を作ります。ゲスト環境の中にDjangoを構築します。その前に、以下の作業を終わらせましょう。

①Virtualboxをインストールします。Virtualboxのインストールまでで結構です。

VirtualBoxをインストールする for Ubuntu

②Vagrantをインストールします。centos7環境を作りますので、Vagrantのインストールのみ済ませてください。

Vagrantをインストールしてテスト環境を作る for Ubuntu

③Vagrantにcentos7環境を作ります。

VagrantでCentOS7 + Python + Django環境を作る(その1 仮想環境作成)

④VagrantにPython3をインストールし、「pyenv + virtalenv」を作ります。

VagrantでCentOS7 + Python + Django環境を作る(その2 Pythonとpyenv + virtalenv)

⑤VagrantにMariaDBをインストールして、DBを構築します。

VagrantでCentOS7 + Python + Django環境を作る(その3 MariaDB)

ホスト環境

OS Ubuntu 16.04.1 LTS 64bit
Virtualbox 5.1
Vagrant 1.9.5

ゲスト環境

OS CentOS 7.1.1503
Python 3.6.1
pip 9.0.1
Web フレームワーク Django 1.11.2
データベース MariaDB 5.5.52-1.el7.x86_64
Webサーバ nginx 1.13.2

Vagrantへログイン

①【ホスト環境】端末を開き、前回構築したVagrantのディレクトリまで移動します。

cd vagrant/django_apps/

②【ホスト環境】仮想マシンを起動します。

vagrant up

③【ホスト環境】ログインします。

vagrant ssh

pyvenvで作成した仮想環境にログイン

前回、pyenvで仮想環境「venv_app1」を作成しました。ここにログインします。

①【ホスト環境】Vagrantの中の「venv_app1」ディレクトリまで移動します。

cd /vagrant/django_apps/venv_app1/

②【ゲスト環境】「venv_app1」を有効化します。

source ./bin/activate

以下のようなプロンプトが表示されれば有効化成功です。

(venv_app1) [vagrant@localhost venv_app1]$ 

nginxをインストール

①仮想マシンに、「nginx yum」レポジトリを追記します。以下のディレクトリに移動してください。

cd /etc/yum.repos.d/

②nginx yum レポジトリファイルを作成します。

sudo vi nginx.repo

以下の内容を記述します。

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=0
enabled=1

③「nginx.repo」が作成できたか確認します。

ls -al

lsの結果は以下のとおりです。

合計 32
-rw-r--r-- 1 root root 1664 11月 29  2016 CentOS-Base.repo
-rw-r--r-- 1 root root 1309 11月 29  2016 CentOS-CR.repo
-rw-r--r-- 1 root root  649 11月 29  2016 CentOS-Debuginfo.repo
-rw-r--r-- 1 root root  630 11月 29  2016 CentOS-Media.repo
-rw-r--r-- 1 root root 1331 11月 29  2016 CentOS-Sources.repo
-rw-r--r-- 1 root root 2893 11月 29  2016 CentOS-Vault.repo
-rw-r--r-- 1 root root  314 11月 29  2016 CentOS-fasttrack.repo
-rw-r--r-- 1 root root  225  6月 29 03:01 nginx.repo

④nginxをインストールします。

sudo yum install -y nginx

⑤nginxのバージョンを確認します。

nginx -v
nginx version: nginx/1.13.2

nginx起動・確認

①nginxを起動します。

sudo systemctl start nginx.service
sudo systemctl enable nginx.service

②nginxは下記 2ファイルで設定されています。デフォルトでは、「/usr/share/nginx/html」ディレクトリ配下の「index.html」をWebアクセスできるように設定されています。テキスト・ファイルの内容を閲覧してみましょう。

less /etc/nginx/nginx.conf
user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

「default.conf」の内容を確認します。

less /etc/nginx/conf.d/default.conf
server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}

index.htmlにHTTPアクセス

①デフォルトで用意されているindex.htmlにHTTPアクセスできるか確認するため、firewalldを停止状態にします。

sudo systemctl stop firewalld
sudo systemctl disable firawalld

②ホスト環境のブラウザから、以下のURLを入力します。ここではVagrantfileのp「rivate_network」の業で指定したのIPアドレスを利用します。

http://192.168.33.15/

成功していればWebブラウザで以下のような画面が表示されます。

次回

次回は、ゲスト環境(仮想環境)にDjangoをインストールします。

VagrantでCentOS7 + Python + Django環境を作る(その5 Django + uWSGI)


トラックバック用のURL
プロフィール

名前:イワサキ ユウタ 職業:システムエンジニア、ウェブマスター 誕生:1986年生まれ 出身:静岡県 特技:ウッドベース 略歴 2008年04月 金融機関系I

最近の投稿
人気記事
カテゴリー
広告