Introduction
This is an ancient way of setting up Vhost with nginx. As we have Chef to automate everything. But before a kickoff with automation using chef, it’s crucial to interpret our problem statement by dealing with it manually.
“Choose Older Eggs For Hard Cooking Maria Simmons”
Problem Statement
NGINX is a free, open-source, high-performance HTTP server. Install nginx manually using package manager, and configure virtual host for opstree.com/blog/, chef.opstree.com.
Prerequisites
This exercise considers that you have a basic understanding of Git, and Vagrant. This blog deal with centos7.
Install Nginx
Clone our github repository and spin up a bare centos7 vagrant machine.
$ git clone [email protected]:OpsTree/Chef.git
Go to nginxVhost directory.
$ cd Chef/centos/nginxVhost
-
This directory have a Vagrantfile. Which can initiate a centos7 vagrant box with 512mb ram.
$ cat Vagrantfile
This file update and install some basic tools in your vagrant machine using vagrant shell provisioning.
-
Launch new vagrant machine and login into it via ssh.
$ vagrant up
$ vagrant ssh
-
Add nginx repo
As nginx is not available in default list of centos7, we add nginx repo to it.
$ sudo yum install -y epel-release
-
Install nginx
Install nginx using package manager “yum”.
$ sudo yum install -y nginx
-
Start nginx
Nginx do not start on its own. Type following to start it.
$ sudo service nginx start
Setup Vhost
Let’s go ahead with our problem statement of setting up vhost with nginx. This leads some dull steps to serve our webpages with opstree.com/blog/ and chef.opstree.com.
-
Replace nginx.conf file with given nginx.conf file.
$ sudo cp /vagrant/nginx.conf /etc/nginx/nginx.conf
-
Copy opstree.com/blog/ and chef.opstree.com into the /etc/nginx/conf.d directory
$ sudo cp /vagrant/opstree.com/blog/ /etc/nginx/conf.d/opstree.com/blog/
$ sudo cp /vagrant/chef.opstree.com /etc/nginx/conf.d/chef.opstree.com
-
Create home directory for vhost.
$ sudo mkdir /usr/share/nginx/blog
$ sudo mkdir /usr/share/nginx/chef
-
Create index files.
$ sudo su -c “echo \”Welcome, this is opstree.com/blog/\” > /usr/share/nginx/blog/index.html”
$ sudo su -c “echo \”Welcome, this is chef.opstree.com\” > /usr/share/nginx/chef/index.html”
-
Make entry in /etc/hosts
$ sudo vim /etc/hosts
127.0.0.1 opstree.com/blog/
127.0.0.1 chef.opstree.com
-
Restart nginx server
$ sudo service nginx restart
-
Access and test your Vhost
$ curl opstree.com/blog/
$ curl chef.opstree.com
You have done all the tiring stuff to set up Nginx Vhost.
“Don’t let a bad day make you feel like you have a bad life.”
We understand your hard labor, so in next blog we go ahead to automate all the stuff.
This is awesome !!!