In-depth analysis of Nginx virtual host

In-depth analysis of Nginx virtual host

1. Virtual Host

1.1 Virtual Host Concept

For Nginx, each virtual host is equivalent to a site that is independent of each other in the same server, so that one host can provide multiple web services to the outside world. Each virtual host is independent and does not affect each other.

1.2 Virtual Host Type

Virtual host configuration can be achieved through Nginx. Nginx supports three types of virtual host configuration:

  • IP-based virtual hosting (less commonly used)
  • Domain-based virtual hosting
  • Port-based virtual hosts

2. Based on IP virtual host

2.1 Configuring multiple IP addresses

 [root@nginx ~]# ifconfig eth0:0 172.24.8.70 broadcast 172.24.8.255 netmask 255.255.255.0
 [root@nginx ~]# ip addr | grep 172
 inet 172.24.8.71/24 brd 172.24.8.255 scope global noprefixroute eth0
 inet 172.24.8.72/24 brd 172.24.8.255 scope global secondary eth0:0

Tip: Add multiple IP addresses on the same host as above.

2.2 Create a site directory

 [root@nginx ~]# mkdir /usr/share/nginx/ipvhost01/
 [root@nginx ~]# mkdir /usr/share/nginx/ipvhost02/
 [root@nginx ~]# echo '<h1>Ipvhost01</h1>' > /usr/share/nginx/ipvhost01/index.html
 [root@nginx ~]# echo '<h1>Ipvhost02</h1>' > /usr/share/nginx/ipvhost02/index.html

2.3 Configure virtual host

 [root@nginx ~]# vi /etc/nginx/conf.d/ipvhost.conf
 server {
 listen ; #Listen port server_name ipvhost.odocker.com ...; #Configure virtual host name and IP
 location / {
 root /usr/share/nginx/ipvhost; #Request matching path index index.html; #Specify homepage access_log /var/log/nginx/ipvhost.access.log main;
 error_log /var/log/nginx/ipvhost.error.log warn;
 }
 }
 server {
 listen ;
 server_name ipvhost.odocker.com ...;
 location / {
 root /usr/share/nginx/ipvhost;
 index index.html;
 access_log /var/log/nginx/ipvhost.access.log main;
 error_log /var/log/nginx/ipvhost.error.log warn;
 }
 }
[root@nginx ~]# nginx -t -c /etc/nginx/nginx.conf #Check the configuration file [root@nginx ~]# nginx -s reload #Reload the configuration file

2.4 Confirmation and Verification

Browser access: ipvhost01.odocker.com.
clipboard
Browser access: ipvhost02.odocker.com.
clipboard

3. Domain name based virtual host

3.1 Create a site directory

 [root@nginx ~]# mkdir /usr/share/nginx/webvhost01/
 [root@nginx ~]# mkdir /usr/share/nginx/webvhost02/
 [root@nginx ~]# echo '<h1>Webvhost01</h1>' > /usr/share/nginx/webvhost01/index.html
 [root@nginx ~]# echo '<h1>Webvhost02</h1>' > /usr/share/nginx/webvhost02/index.html

3.2 Configure virtual host

 [root@nginx ~]# vi /etc/nginx/conf.d/webvhost.conf
 server {
 listen ;
 server_name webvhost.odocker.com;
 location / {
 root /usr/share/nginx/webvhost;
 index index.html;
 access_log /var/log/nginx/webvhost.access.log main;
 error_log /var/log/nginx/webvhost.error.log warn;
 }
 }
 server {
 listen ;
 server_name webvhost.odocker.com;
 location / {
 root /usr/share/nginx/webvhost;
 index index.html;
 access_log /var/log/nginx/webvhost.access.log main;
 error_log /var/log/nginx/webvhost.error.log warn;
 }
 }
[root@nginx ~]# nginx -t -c /etc/nginx/nginx.conf #Check the configuration file [root@nginx ~]# nginx -s reload #Reload the configuration file

3.3 Confirmation and Verification

Browser access: webvhost01.odocker.com.
clipboard
Browser access: webvhost02.odocker.com.
clipboard

Four port-based virtual hosts

4.1 Create a site directory

[root@nginx ~]# mkdir /usr/share/nginx/portvhost01/
 [root@nginx ~]# mkdir /usr/share/nginx/portvhost02/
 [root@nginx ~]# echo '<h1>Portvhost01</h1>' > /usr/share/nginx/portvhost01/index.html
 [root@nginx ~]# echo '<h1>Portvhost01</h1>' > /usr/share/nginx/portvhost02/index.html

4.2 Configure virtual host

 [root@nginx ~]# vi /etc/nginx/conf.d/portvhost.conf
 server {
 listen ;
 server_name portvhost.odocker.com;
 location / {
 root /usr/share/nginx/portvhost;
 index index.html;
 access_log /var/log/nginx/portvhost.access.log main;
 error_log /var/log/nginx/portvhost.error.log warn;
 }
 }
 server {
 listen ;
 server_name portvhost.odocker.com;
 location / {
 root /usr/share/nginx/portvhost;
 index index.html;
 access_log /var/log/nginx/access_portvhost.log main;
 }
 }
 [root@nginx ~]# nginx -t -c /etc/nginx/nginx.conf #Check the configuration file [root@nginx ~]# nginx -s reload #Reload the configuration file

4.3 Confirmation and Verification

Browser access: portvhost01.odocker.com:8080
clipboard
Browser access: portvhost02.odocker.com:8081
clipboard

This is the end of this article about Nginx virtual host. For more relevant Nginx virtual host content, please search 123WORDPRESS.COM’s previous articles or continue to browse the following related articles. I hope everyone will support 123WORDPRESS.COM in the future!

You may also be interested in:
  • How to set up virtual hosts and specified access paths in Nginx
  • Nginx virtual host setting example (multiple website configuration)
  • Three ways to configure Nginx virtual hosts (based on domain names)
  • Detailed explanation of nginx virtual host configuration example
  • Detailed steps for configuring virtual hosts in nginx
  • Summary of some unpopular knowledge about virtual hosts in Nginx

<<:  About MYSQL, you need to know the data types and operation tables

>>:  Vue+Openlayer uses modify to modify the complete code of the element

Recommend

Sharing some details about MySQL indexes

A few days ago, a colleague asked me a question a...

What is the use of the enctype field when uploading files?

The enctype attribute of the FORM element specifie...

Full steps to create a password generator using Node.js

Table of contents 1. Preparation 2. Writing comma...

Detailed explanation of writing and using Makefile under Linux

Table of contents Makefile Makefile naming and ru...

Vue component organization structure and component registration details

Table of contents 1. Component Organization 2. Co...

How to use webSocket to update real-time weather in Vue

Table of contents Preface About webSocket operati...

Deploy grafana+prometheus configuration using docker

docker-compose-monitor.yml version: '2' n...

MySQL efficient query left join and group by (plus index)

mysql efficient query MySQL sacrifices group by t...

canvas.toDataURL image/png error handling method recommendation

Problem background: There is a requirement to tak...

Detailed steps to install MySQL on CentOS 7

In CentOS7, when we install MySQL, MariaDB will b...

How to configure Basic Auth login authentication in Nginx

Sometimes we build a file server through nginx, w...

Web development tutorial cross-domain solution detailed explanation

Preface This article mainly introduces the cross-...

Detailed explanation of COLLATION examples in MySQL that you may have overlooked

Preface The string types of MySQL database are CH...