nginx的443端口+虚拟主机
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*命令查看添加后的地址如下图所示:
(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{}改动点如图所示:
# 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、验证实验配置结果
通过浏览器访问个站点地址,验证实验结果:
(1)打开浏览器,地址栏输入192.168.3.199后访问到如下内容,如图所示:
(2)打开浏览器,地址栏输入192.168.3.200后访问到如下内容,如图所示:
(3)打开浏览器,地址栏输入192.168.3.201后访问到如下内容,如图所示:
根据实际访问结果,验证基于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
(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
192.168.8.245 www.haodaonginx.com
192.168.8.245 www.haodaopython.com
192.168.8.245 www.haodaolinux.com
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进行验证,如下图所示:
根据实际访问结果,验证基于域名的多虚拟主机实验配置成功。
(2)在windows环境下通过浏览器访问进行验证,这里留给大家自行验证,结果差不多的!
七、基于端口的多虚拟主机实战配置
(一)虚拟主机概念虚拟主机
指的是一台运行在因特网上的服务器主机分成了多台虚拟的主机,每台虚拟主机是一个独立的站点,虚拟主机可以具有独立的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后访问到如下内容,如图所示:
根据实际访问结果,验证基于端口的多虚拟主机实验配置成功。