nginx的443端口+虚拟主机

发布时间 2023-11-18 16:42:35作者: 往事已成昨天

https配置

端口:443

生成证书文件;

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

虚拟主机的配置内容server块

虚拟主机:

(一)虚拟主机概念

虚拟主机指的是一台运行在因特网上的服务器主机分成了多台虚拟的主机,每台虚拟主机是一个独立的站点,虚拟主机可以具有独立的IP,独立的域名,独立的服务端口,具有完整的Intemet服务器功能,如www服务、邮件服务、FTP服务等。而nginx提供了在一台机器上,同时运行多个网站的功能。同一台主机上的虚拟主机之间是完全独立的。从用户来看,每一台虚拟主机和一台独立的主机完全一样。

(二)多虚拟主机应用场景

nginx的多虚拟主机可以基于多IP的形式、基于多域名的形式、多端口的形式。正因为有了nginx的多虚拟主机,我们就可以不用为了运行一个网站服务,而单独配置一个nginx服务器了。大大释放了服务器资源。

(三)基于IP的多虚拟主机实战配置

1、环境准备

(1)如下拓扑所示

             199    ================================  199站点下面内容

       在一台服务器上面实现:         200        ====================                           200站点下面内容

               201        ================                    201站点下面内容

 

1)当用户访问192.168.3.199时,返回的是/haodao_nginx/nginx199站点下的内容;2)当用户访问192.168.3.200时,返回的是/haodao_nginx/python200站点下的内容;3)当用户访问192.168.3.201时,返回的是/haodao_nginx/linux201站点下的内容;

(2)为单网卡虚拟机添加多个IP地址

我这里是在一台虚拟机上进行实验,即一个网卡只有一个IP地址,当前网卡名为:eno16777736,IP地址为192.168.3.199,子网掩码为24位。

通过以下命令为网卡名为eno16777736临时再添加两个地址:

ip addr add 192.168.3.200/24 dev eno16777736

ip addr add 192.168.3.201/24 dev eno16777736

通过ip addr |grep eno*命令查看添加后的地址如下图所示:

IMG_256

 

IMG_257

 

 

(3)根据拓扑信息,建立三个站点目录,通过以下命令进行:

mkdir -p /haodao_nginx/nginx245

mkdir -p /haodao_nginx/python246

mkdir -p /haodao_nginx/linux247

(4)建立基于3个站点的网站内容,通过以下命令进行:

echo "这里是浩道的nginx245站点!!!" > /haodao_nginx/nginx245/index.html

echo "这里是浩道的python246站点!!!" > /haodao_nginx/python246/index.html

echo "这里是浩道的linux247站点!!!" > /haodao_nginx/linux247/index.html

 

2、修改nginx.conf配置文件

(1)在nginx.conf文件中的http块添加多个server{}标签,使得nginx支持基于多IP的虚拟主机,返回多个站点内容:

server {

listen 192.168.3.199:80;

server_name localhost;

charset utf-8;

#access_log logs/host.access.log main;

location / {

root /haodao_nginx/nginx199;

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 html;

}

}

server {

listen 192.168.3.200:80;

server_name localhost;

charset utf-8;

#access_log logs/host.access.log main;

location / {

root /haodao_nginx/python200;

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 html;

}

}

server {

listen 192.168.3.201:80;

server_name localhost;

charset utf-8;

#access_log logs/host.access.log main;

location / {

root /haodao_nginx/linux201;

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 html;

}

}

每一个server{}改动点如图所示:

IMG_258

# another virtual host using mix of IP-, name-, and port-based configuration
#
server {
listen 192.168.8.245:80;
server_name localhost;
charset utf-8;

location / {
root /haodao_nginx/nginx245;
index index.html index.htm;
}
}
server {
listen 192.168.8.246:80;
server_name localhost;
charset utf-8;

location / {
root /haodao_nginx/python246;
index index.html index.htm;
}
}
server {
listen 192.168.8.247:80;
server_name localhost;
charset utf-8;

location / {
root /haodao_nginx/linux247;
index index.html index.htm;
}
}

 

 

 

 

 

 

(2)检查nginx配置文件语法,确认语法无误,命令如下:

nginx -t

(3)重启nginx服务

nginx -s stop

nginx

 

3、验证实验配置结果

通过浏览器访问个站点地址,验证实验结果:

 

IMG_259

 

(1)打开浏览器,地址栏输入192.168.3.199后访问到如下内容,如图所示:

 

(2)打开浏览器,地址栏输入192.168.3.200后访问到如下内容,如图所示:

 

(3)打开浏览器,地址栏输入192.168.3.201后访问到如下内容,如图所示:

IMG_260

 

 

 

根据实际访问结果,验证基于IP的多虚拟主机实验配置成功。

 

六、基于域名的多虚拟主机实战配置(一)虚拟主机概念虚拟主机指的是一台运行在因特网上的服务器主机分成了多台虚拟的主机,每台虚拟主机是一个独立的站点,虚拟主机可以具有独立的IP,独立的域名,独立的服务端口,具有完整的Intemet服务器功能,如www服务、邮件服务、FTP服务等。而nginx提供了在一台机器上,同时运行多个网站的功能。同一台主机上的虚拟主机之间是完全独立的。从用户来看,每一台虚拟主机和一台独立的主机完全一样。(二)多虚拟主机应用场景nginx的多虚拟主机可以基于多IP的形式、基于多域名的形式、多端口的形式。正因为有了nginx的多虚拟主机,我们就可以不用为了运行一个网站服务,而单独配置一个nginx服务器了。大大释放了服务器资源。(三)基于域名的多虚拟主机实战配置

1、环境准备

(1)如下拓扑所示

www.haodaonginx.com      ===============/haodao_nginx/haodaonginx

在一台服务器上面设置多域名:www.haodaopython.com ===============================/haodao_nginx/haodaopython站点下的内容

www.haodaolinux.com =======================/haodao_nginx/haodaolinux

1)当用户访问www.haodaonginx.com时,返回的是/haodao_nginx/haodaonginx站点下的内容;

2)当用户访问www.haodaopython.com时,返回的是/haodao_nginx/haodaopython站点下的内容;

3)当用户访问www.haodaolinux.com时,返回的是/haodao_nginx/haodaolinux站点下的内容;

 

2、配置DNS域名解析,使得访问上述相关域名时,可以正确解析到192.168.3.199的IP

(1)linux环境下进行配置

1)可以使用DNS服务器的方式实现;2)基于/etc/hosts文件进行解析;

以下实验基于/etc/hosts文件进行解析,通过vim /etc/hosts编辑该文件,追加如下信息,具体配置如下:

192.168.3.199 www.haodaonginx.com192.168.3.199 www.haodaopython.com192.168.3.199 www.haodaolinux.com

IMG_256

 

 

(2)windows环境下进行配置这里是为方便在windows中通过浏览器进行访问而做的配置:1)基于C:\Windows\System32\drivers\etc\hosts文件进行解析;

通过修改C:\Windows\System32\drivers\etc\hosts文件,追加如下信息,具体配置如下:

192.168.3.199 www.haodaonginx.com192.168.3.199 www.haodaopython.com192.168.3.199 www.haodaolinux.com

C:\Windows\System32\drivers\etc

IMG_257

 

192.168.8.245 www.haodaonginx.com
192.168.8.245 www.haodaopython.com
192.168.8.245 www.haodaolinux.com

IMG_258

 

 

3、根据拓扑信息,建立三个站点目录,通过以下命令进行:

mkdir -p /haodao_nginx/haodaonginx

mkdir -p /haodao_nginx/haodaopython

mkdir -p /haodao_nginx/haodaolinux

4、建立基于3个站点的网站内容,通过以下命令进行:

echo "这里是浩道的www.haodaonginx.com站点!!!" > /haodao_nginx/haodaonginx/index.html

echo "这里是浩道的www.haodao.python站点!!!" > /haodao_nginx/haodaopython/index.html

echo "这里是浩道的www.haodaolinux站点!!!" > /haodao_nginx/haodaolinux/index.html

 

5、修改nginx.conf配置文件

(1)在nginx.conf文件中的http块添加多个server{}标签,使得nginx支持基于多域名的虚拟主机,返回多个站点内容

server {

listen 80;

server_name www.haodaonginx.com;

charset utf-8;

#access_log logs/host.access.log main;

location / {

root /haodao_nginx/haodaonginx;

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 html;

}

}

server {

listen 80;

server_name www.haodaopython.com;

charset utf-8;

#access_log logs/host.access.log main;

location / {

root /haodao_nginx/haodaopython;

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 html;

}

}

server {

listen 80;

server_name www.haodaolinux.com;

charset utf-8;

#access_log logs/host.access.log main;

location / {

root /haodao_nginx/linux201;

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 html;

}

}

 

将第一个server注释掉,添加如下的server,每一个server{}改动点如图所示:

 

server {
listen 80;
server_name www.haodaonginx.com;
charset utf-8;
#access_log logs/host.access.log main;
location / {
root /haodao_nginx/haodaonginx;
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 html; }
}
server {
listen 80;
server_name www.haodaopython.com;
charset utf-8;
#access_log logs/host.access.log main;
location / {
root /haodao_nginx/haodaopython;
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 html; }
}
server {
listen 80;
server_name www.haodaolinux.com;
charset utf-8;
#access_log logs/host.access.log main;
location / {
root /haodao_nginx/haodaolinux;
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 html; }
}

 

 

 

 

 

(2)检查nginx配置文件语法,确认语法无误,命令如下:

nginx -t

(3)重启nginx服务

nginx -s stop

nginx

 

6、验证实验配置结果

(1)在linux环境下通过浏览器访问个站点地址,验证实验结果:由于我linux服务器没有安装图形桌面,因此没有办法用浏览器访问的方式进行验证,但是可以通过linux命令curl进行验证,如下图所示:

IMG_259

 

 

 

 

 

 

根据实际访问结果,验证基于域名的多虚拟主机实验配置成功。

(2)在windows环境下通过浏览器访问进行验证,这里留给大家自行验证,结果差不多的!

IMG_260

 

 

七、基于端口的多虚拟主机实战配置

(一)虚拟主机概念虚拟主机

指的是一台运行在因特网上的服务器主机分成了多台虚拟的主机,每台虚拟主机是一个独立的站点,虚拟主机可以具有独立的IP,独立的域名,独立的服务端口,具有完整的Intemet服务器功能,如www服务、邮件服务、FTP服务等。而nginx提供了在一台机器上,同时运行多个网站的功能。同一台主机上的虚拟主机之间是完全独立的。从用户来看,每一台虚拟主机和一台独立的主机完全一样。

(二)多虚拟主机应用场景

nginx的多虚拟主机可以基于多IP的形式、基于多域名的形式、多端口的形式。正因为有了nginx的多虚拟主机,我们就可以不用为了运行一个网站服务,而单独配置一个nginx服务器了。大大释放了服务器资源。

(三)基于端口的多虚拟主机实战配置

1、环境准备

(1)如下拓扑所示

80=========================80port

8081=======================8081port

8090=======================8090port

1)当用户访问192.168.3.199:80时,返回的是/haodao_nginx/nginx80port站点下的内容;

2)当用户访问192.168.3.199:8081时,返回的是/haodao_nginx/python8081port站点下的内容;

3)当用户访问192.168.3.199:8090时,返回的是/haodao_nginx/linux8090port站点下的内容;

 

(2)根据拓扑信息,建立三个站点目录,通过以下命令进行:

mkdir -p /haodao_nginx/nginx80port

mkdir -p /haodao_nginx/python8081port

mkdir -p /haodao_nginx/linux8090port

 

(3)建立基于3个站点的网站内容,通过以下命令进行:

echo "这里是浩道的nginx80port站点!!!" > /haodao_nginx/nginx80port/index.html

echo "这里是浩道的python8081port站点!!!" > /haodao_nginx/python8081port/index.html

echo "这里是浩道的linux8090port站点!!!" > /haodao_nginx/linux8090port/index.html

 

2、修改nginx.conf配置文件

(1)在nginx.conf文件中的http块添加多个server{}标签,使得nginx支持基于多端口的虚拟主机,返回多个站点内容

server {

listen 80;

server_name localhost;

charset utf-8;

#access_log logs/host.access.log main;

location / {

root /haodao_nginx/nginx80port;

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 html;

}

}

server {

listen 8081;

server_name localhost;

charset utf-8;

#access_log logs/host.access.log main;

location / {

root /haodao_nginx/python8081port;

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 html;

}

}

server {

listen 8090;

server_name localhost;

charset utf-8;

#access_log logs/host.access.log main;

location / {

root /haodao_nginx/linux8090port;

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 html;

}

}

每一个server{}改动点如图所示:

server {
listen 80;
server_name localhost;
charset utf-8;
#access_log logs/host.access.log main;
location / { root /haodao_nginx/nginx80port; 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 html; }
}
server {
listen 8081;
server_name localhost;
charset utf-8;
#access_log logs/host.access.log main;
location / { root /haodao_nginx/python8081port; 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 html; }
}
server {
listen 8090;
server_name localhost;
charset utf-8;
#access_log logs/host.access.log main;
location / { root /haodao_nginx/linux8090port; 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 html; }
}

 

 

 

 

 

 

(2)检查nginx配置文件语法,确认语法无误,命令如下:

nginx -t

(3)重启nginx服务

nginx -s stop

nginx

3、验证实验配置结果

通过浏览器访问个站点地址,验证实验结果:

 

(1)打开浏览器,地址栏输入192.168.3.199:80后访问到如下内容,如图所示:

 

 

(2)打开浏览器,地址栏输入192.168.3.199:8081后访问到如下内容,如图所示:

 

 

(3)打开浏览器,地址栏输入192.168.3.199:8090后访问到如下内容,如图所示:

IMG_261

 

IMG_262

 

IMG_263

 

 

 

根据实际访问结果,验证基于端口的多虚拟主机实验配置成功。