linux平台,一、搭建Nginx服务器,二、用户认证,三、基于域名的虚拟主机,四、SSL虚拟主机

news2024/11/14 2:10:48
linux,搭建Nginx服务器

1.环境准备
主机名	IP地址	角色
client	eth0:192.168.88.10/24	客户端
proxy	eth0:192.168.88.5/24
eth1:192.168.99.5/24	       web服务器
web1	eth1:192.168.99.100/24	/
web2	eth1:192.168.99.200/24	/

2.实验要求
在proxy主机上安装部署Nginx服务,并可以将Nginx服务器,要求编译时启用如下功能:
    支持SSL加密功能
    设置Nginx账户及组名称均为nginx

客户端访问页面验证Nginx Web服务器
    使用浏览器访问
    使用curl访问


构建Nginx服务器

1)使用源码包安装nginx软件包
情况一,教室环境:
将linux真机中的lnmp_soft.tar.gz 传入虚拟机proxy的root家目录
[root@server1 ~]# scp /linux-soft/s2/wk/lnmp_soft.tar.gz 192.168.88.5:/root

情况二,非教室环境:
使用WindTerm或MobaXterm等工具把软件包拖拽到自己的环境中

[root@proxy ~]# yum -y install gcc make pcre-devel openssl-devel      #安装编译工具,正则表达式依赖包,SSL加密依赖包
[root@proxy ~]# tar -xf /root/lnmp_soft.tar.gz 
[root@proxy ~]# cd lnmp_soft/
[root@proxy ~]# tar -xf nginx-1.22.1.tar.gz
[root@proxy lnmp_soft]# cd nginx-1.22.1/
[root@proxy nginx-1.22.1]# ./configure   --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module  #指定安装路径,指定用户,指定组,开启SSL加密功能
[root@proxy nginx-1.22.1]# make            #编译
[root@proxy nginx-1.22.1]# make install    #安装
[root@proxy nginx-1.22.1]# cd /usr/local/nginx/
[root@proxy nginx]# ls
conf  html  logs  sbin

目录说明:
    conf 配置文件目录
    sbin 主程序目录
    html 网站页面目录
    logs 日志目录

2)启动nginx
[root@proxy nginx]# useradd nginx -s /sbin/nologin
[root@proxy nginx]# /usr/local/nginx/sbin/nginx     #启动服务
nginx服务默认通过80端口监听客户端请求
[root@proxy nginx]# ss  -antlp  |  grep 80
tcp   LISTEN 0      128          0.0.0.0:80          0.0.0.0:*     users:(("nginx",pid=7681,fd=6),("nginx",pid=7680,fd=6))

ss命令可以查看系统中启动的端口信息,该命令常用选项如下:
-a显示所有端口的信息
-n以数字格式显示端口号
-t显示TCP连接的端口
-u显示UDP连接的端口
-l显示服务正在监听的端口信息,如httpd启动后,会一直监听80端口
-p显示监听端口的服务名称是什么(也就是程序名称)

nginx命令其他命令:
[root@proxy nginx]# /usr/local/nginx/sbin/nginx -V                 #查看软件信息
[root@proxy nginx]# /usr/local/nginx/sbin/nginx -s reload          #重新加载配置文件
[root@proxy nginx]# /usr/local/nginx/sbin/nginx -s stop            #关闭服务

3)客户端访问测试
Nginx服务默认首页文档存储目录为/usr/local/nginx/html/,在此目录下默认有一个index.html的文件

命令行访问:
[root@proxy nginx]# /usr/local/nginx/sbin/nginx          
[root@client ~]# curl http://192.168.88.5   
<html>
<head>
<title>Welcome to nginx!</title>
</head>
...

浏览器访问:
真机浏览器访问192.168.88.5

定义测试页面
1)测试网站自定义页面
[root@proxy nginx]# echo "abc-test~"  >  html/abc.html   #创建新页面
[root@client ~]# curl 192.168.88.5/abc.html     #客户端访问新页面
abc-test~

真机浏览器访问:192.168.88.5/abc.html #如果无效,可以按ctrl+f5强制刷新
2)测试成品网站页面
[root@proxy nginx]# yum -y install unzip     #安装解压缩工具
[root@proxy nginx]# unzip  /root/lnmp_soft/www_template.zip    #解压缩网站模板
[root@proxy nginx]# cp -r www_template/* html/  #拷贝网站模板文件到nginx的网页目录,如果有覆盖提示就输入 y 回车
cp: overwrite 'html/index.html'? y      

真机浏览器访问192.168.88.5
二、用户认证
实验要求
沿用前一个实验,调整Nginx服务端配置,实现以下目标:
    访问nginx的Web页面需要进行用户认证
    用户名为:tom,密码为:123456
修改Nginx配置文件
1)修改nginx.conf,开启认证功能
[root@proxy nginx]# vim /usr/local/nginx/conf/nginx.conf
.. ..
server {
        listen       80;
        server_name  localhost;
        auth_basic "Input Password:";                  #新添加,认证提示符信息
        auth_basic_user_file  "/usr/local/nginx/pass"; #新添加,认证的密码文件
...        
        location / {
            root   html;
            index  index.html index.htm;
        }
  }
2)生成密码文件,创建用户及密码
使用htpasswd命令创建账户文件,需要确保系统中已经安装了httpd-tools
[root@proxy nginx]# yum -y install  httpd-tools #如果已经安装,则不需要执行安装命令
[root@proxy nginx]# htpasswd -c /usr/local/nginx/pass tom    #创建密码文件,-c新创建
New password:           #密码123456
Re-type new password:   #密码123456
Adding password for user tom
3)重新加载配置
[root@proxy nginx]# /usr/local/nginx/sbin/nginx -s reload    #重新加载配置文件    

#请先确保nginx是启动状态,否则运行该命令会报错,报错信息如下:
#[error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)
浏览器测试
访问192.168.88.5,会出现一个登录的界面,输入用户名/密码:tom/123456登录即可

1)追加账户
[root@proxy nginx]# htpasswd  /usr/local/nginx/pass   alice    #追加用户,不使用-c选项
New password:           #密码123456
Re-type new password:   #密码123456
Adding password for user alice
[root@proxy ~]# cat /usr/local/nginx/pass
三、基于域名的虚拟主机
实验要求
配置基于域名的虚拟主机,实现两个基于域名的虚拟主机,域名分别为www.a.com和www.b.com
修改配置文件
1)修改Nginx服务配置
添加相关虚拟主机配置如下

[root@proxy nginx]# cp conf/nginx.conf.default conf/nginx.conf  #还原配置文件
[root@proxy nginx]# vim conf/nginx.conf  
...
http {
.. ..
    server {
        listen       80;                           #端口
        server_name  www.b.com;                    #定义虚拟主机域名
        location / {
            root   html_b;                         #指定网站根路径
            index  index.html index.htm;           #默认页面
        }
}
    server {
    listen  80;                                 #端口
    server_name  www.a.com;                     #定义虚拟主机域名
...    
    location / { 
        root   html;                            #指定网站根路径
        index  index.html index.htm;
    }
}
...
[root@proxy nginx]# /usr/local/nginx/sbin/nginx -s reload   #重新加载配置文件
2)创建网站根目录及对应首页文件
[root@proxy nginx]# echo "nginx-A~~~"  > html/index.html      #创建a网站测试页
[root@proxy nginx]# mkdir html_b                              #创建b网站的目录
[root@proxy nginx]# echo "nginx-B~~~"  > html_b/index.html    #创建b网站测试页

client客户端测试
[root@client ~]# vim  /etc/hosts        #修改hosts文件添加ip和域名的映射关系
192.168.88.5  www.a.com  www.b.com

[root@client ~]# curl  www.a.com
nginx-A~~~
[root@client ~]# curl  www.b.com
nginx-B~~~

如果想在linux中使用浏览器访问,同样在操作
[root@server1 ~]# vim  /etc/hosts    #修改hosts文件添加ip和域名的映射关系
192.168.88.5  www.a.com  www.b.com
浏览器直接访问www.a.com  或 www.b.com 即可

扩展补充:
windows环境配置hosts文件
C:\Windows\System32\drivers\etc\hosts
然后用文本打开hosts,在最后添加
192.168.88.5 www.a.com www.b.com

如果hosts文件是只读,可以
右击hosts文件---属性---安全---编辑---users---完全控制打钩
其他类型的虚拟主机(选做)
1)基于端口的虚拟主机
[root@proxy nginx]# vim conf/nginx.conf  
...
    server {
        listen       8080;               #端口
        server_name  www.a.com;          #域名
        ......
}
    server {
        listen       8000;                #端口
        server_name  www.a.com;           #域名
      .......
}
...
[root@proxy nginx]# sbin/nginx  -s  reload   #重新加载配置文件

client客户端测试
[root@client ~]# curl  www.a.com:8080
nginx-B~~~
[root@client ~]# curl  www.a.com:8000
nginx-A~~~
2)基于IP的虚拟主机(了解,无须操作)
[root@proxy nginx]# vim conf/nginx.conf  
...
   server {
        listen       192.168.88.5:80;    #IP地址与端口
        server_name  www.a.com;          #域名
  ... ...
}
    server {
        listen       192.168.99.5:80;     #IP地址与端口
        server_name  www.a.com;
... ...
}
...
[root@proxy nginx]# /usr/local/nginx/sbin/nginx -s reload   #重新加载配置文件
四、SSL虚拟主机
实验要求
配置基于加密网站的虚拟主机,实现以下目标:
    该站点通过https访问
    通过私钥、证书对该站点所有数据加密
加密算法说明
源码安装Nginx时必须使用--with-http_ssl_module参数,启用加密模块,对于需要进行SSL加密处理的站点添加ssl相关指令(设置网站需要的私钥和证书)

加密算法一般分为对称算法、非对称算法、信息摘要
对称算法有:AES、DES,主要应用在单机数据加密
非对称算法有:RSA、DSA,主要应用在网络数据加密
信息摘要:MD5、sha256,主要应用在数据完整性校验
[root@proxy nginx]# echo 123 > /root/test
[root@proxy nginx]# md5sum  /root/test

[root@proxy nginx]# echo 1234 > /root/test  #更改文件内容
[root@proxy nginx]# md5sum  /root/test      #md5值已经发生变化
配置SSL虚拟主机
1)修改Nginx配置文件,设置加密网站的虚拟主机
[root@proxy nginx]# cp conf/nginx.conf.default conf/nginx.conf  #还原配置文件
[root@proxy nginx]# vim  /usr/local/nginx/conf/nginx.conf
...
server {
        listen       443 ssl;    #监听端口443,ssl使用安全加密技术
        server_name            localhost;
        ssl_certificate      cert.pem;            #这里是证书文件
        ssl_certificate_key  cert.key;            #这里是私钥文件
        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;
        location / {
            root   https;                        #加密网站根目录,更改,也可以自行定义
            index  index.html index.htm;
        }
    }
...    
2)生成私钥与证书
[root@proxy nginx]# openssl genrsa > conf/cert.key            #生成私钥,放到cert.key文件
[root@proxy nginx]# openssl req -x509 -key conf/cert.key > conf/cert.pem    #-x509格式,生成证书,生成过程会询问诸如你在哪个国家之类的问题,可以随意回答
Country Name (2 letter code) [XX]:dc        #国家名
State or Province Name (full name) []:dc    #省份
Locality Name (eg, city) [Default City]:dc  #城市
Organization Name (eg, company) [Default Company Ltd]:dc    #公司
Organizational Unit Name (eg, section) []:dc               #部门
Common Name (eg, your name or your server's hostname) []:dc #服务器名称
Email Address []:dc@dc.com          #电子邮件

[root@proxy nginx]# /usr/local/nginx/sbin/nginx -s reload   #重新加载配置文件
[root@proxy nginx]# mkdir https    #创建安全网站的目录
[root@proxy nginx]# echo "nginx-https~"  > https/index.html     #创建安全网站的页面
3)客户端验证
命令行测试
[root@client ~]# curl  -k  https://192.168.88.5     #检验,-k是忽略安全风险
nginx-https~      #看到这个内容就说明实验成功

真机浏览器访问:https://192.168.88.5

一、搭建Nginx服务器
 

环境准备
主机名    IP地址    角色
client    eth0:192.168.88.10/24    客户端
proxy    eth0:192.168.88.5/24
eth1:192.168.99.5/24    web服务器
web1    eth1:192.168.99.100/24    /
web2    eth1:192.168.99.200/24    /
按照上述要求创建虚拟机,并配置ip地址

[student@server1 ~]# sudo -i        #切换到root管理员操作
[root@server1 ~]# vm clone client proxy web1 web2
[root@server1 ~]# vm setip client 192.168.88.10
[root@server1 ~]# vm setip proxy 192.168.88.5
[root@server1 ~]# vm setip proxy 192.168.99.5
[root@server1 ~]# vm setip web1 192.168.99.100
[root@server1 ~]# vm setip web2 192.168.99.200
windows环境的同学需要自行克隆虚拟机,配置ip,主机名等,永久关闭防火墙和selinux

实验要求
在proxy主机上安装部署Nginx服务,并可以将Nginx服务器,要求编译时启用如下功能:
    支持SSL加密功能
    设置Nginx账户及组名称均为nginx

客户端访问页面验证Nginx Web服务器
    使用浏览器访问
    使用curl访问
构建Nginx服务器
1)使用源码包安装nginx软件包
情况一,教室环境:
将linux真机中的lnmp_soft.tar.gz 传入虚拟机proxy的root家目录
[root@server1 ~]# scp /linux-soft/s2/wk/lnmp_soft.tar.gz 192.168.88.5:/root

情况二,非教室环境:
使用WindTerm或MobaXterm等工具把软件包拖拽到自己的环境中

[root@proxy ~]# yum -y install gcc make pcre-devel openssl-devel      #安装编译工具,正则表达式依赖包,SSL加密依赖包
[root@proxy ~]# tar -xf /root/lnmp_soft.tar.gz 
[root@proxy ~]# cd lnmp_soft/
[root@proxy ~]# tar -xf nginx-1.22.1.tar.gz
[root@proxy lnmp_soft]# cd nginx-1.22.1/
[root@proxy nginx-1.22.1]# ./configure   --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module  #指定安装路径,指定用户,指定组,开启SSL加密功能
[root@proxy nginx-1.22.1]# make            #编译
[root@proxy nginx-1.22.1]# make install    #安装
[root@proxy nginx-1.22.1]# cd /usr/local/nginx/
[root@proxy nginx]# ls
conf  html  logs  sbin

目录说明:
    conf 配置文件目录
    sbin 主程序目录
    html 网站页面目录
    logs 日志目录
2)启动nginx
[root@proxy nginx]# useradd nginx -s /sbin/nologin
[root@proxy nginx]# /usr/local/nginx/sbin/nginx     #启动服务
nginx服务默认通过80端口监听客户端请求
[root@proxy nginx]# ss  -antlp  |  grep 80
tcp   LISTEN 0      128          0.0.0.0:80          0.0.0.0:*     users:(("nginx",pid=7681,fd=6),("nginx",pid=7680,fd=6))

ss命令可以查看系统中启动的端口信息,该命令常用选项如下:
-a显示所有端口的信息
-n以数字格式显示端口号
-t显示TCP连接的端口
-u显示UDP连接的端口
-l显示服务正在监听的端口信息,如httpd启动后,会一直监听80端口
-p显示监听端口的服务名称是什么(也就是程序名称)

nginx命令其他命令:
[root@proxy nginx]# /usr/local/nginx/sbin/nginx -V                 #查看软件信息
[root@proxy nginx]# /usr/local/nginx/sbin/nginx -s reload          #重新加载配置文件
[root@proxy nginx]# /usr/local/nginx/sbin/nginx -s stop            #关闭服务
3)客户端访问测试
Nginx服务默认首页文档存储目录为/usr/local/nginx/html/,在此目录下默认有一个index.html的文件

命令行访问:
[root@proxy nginx]# /usr/local/nginx/sbin/nginx          
[root@client ~]# curl http://192.168.88.5   
<html>
<head>
<title>Welcome to nginx!</title>
</head>
...

浏览器访问:
真机浏览器访问192.168.88.5
定义测试页面
1)测试网站自定义页面
[root@proxy nginx]# echo "abc-test~"  >  html/abc.html   #创建新页面
[root@client ~]# curl 192.168.88.5/abc.html     #客户端访问新页面
abc-test~

真机浏览器访问:192.168.88.5/abc.html #如果无效,可以按ctrl+f5强制刷新
2)测试成品网站页面
[root@proxy nginx]# yum -y install unzip     #安装解压缩工具
[root@proxy nginx]# unzip  /root/lnmp_soft/www_template.zip    #解压缩网站模板
[root@proxy nginx]# cp -r www_template/* html/  #拷贝网站模板文件到nginx的网页目录,如果有覆盖提示就输入 y 回车
cp: overwrite 'html/index.html'? y      

真机浏览器访问192.168.88.5
二、用户认证
实验要求
沿用前一个实验,调整Nginx服务端配置,实现以下目标:
    访问nginx的Web页面需要进行用户认证
    用户名为:tom,密码为:123456
修改Nginx配置文件
1)修改nginx.conf,开启认证功能
[root@proxy nginx]# vim /usr/local/nginx/conf/nginx.conf
.. ..
server {
        listen       80;
        server_name  localhost;
        auth_basic "Input Password:";                  #新添加,认证提示符信息
        auth_basic_user_file  "/usr/local/nginx/pass"; #新添加,认证的密码文件
...        
        location / {
            root   html;
            index  index.html index.htm;
        }
  }
2)生成密码文件,创建用户及密码
使用htpasswd命令创建账户文件,需要确保系统中已经安装了httpd-tools
[root@proxy nginx]# yum -y install  httpd-tools #如果已经安装,则不需要执行安装命令
[root@proxy nginx]# htpasswd -c /usr/local/nginx/pass tom    #创建密码文件,-c新创建
New password:           #密码123456
Re-type new password:   #密码123456
Adding password for user tom
3)重新加载配置
[root@proxy nginx]# /usr/local/nginx/sbin/nginx -s reload    #重新加载配置文件    

#请先确保nginx是启动状态,否则运行该命令会报错,报错信息如下:
#[error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)
浏览器测试
访问192.168.88.5,会出现一个登录的界面,输入用户名/密码:tom/123456登录即可

1)追加账户
[root@proxy nginx]# htpasswd  /usr/local/nginx/pass   alice    #追加用户,不使用-c选项
New password:           #密码123456
Re-type new password:   #密码123456
Adding password for user alice
[root@proxy ~]# cat /usr/local/nginx/pass
三、基于域名的虚拟主机
实验要求
配置基于域名的虚拟主机,实现两个基于域名的虚拟主机,域名分别为www.a.com和www.b.com
修改配置文件
1)修改Nginx服务配置
添加相关虚拟主机配置如下

[root@proxy nginx]# cp conf/nginx.conf.default conf/nginx.conf  #还原配置文件
[root@proxy nginx]# vim conf/nginx.conf  
...
http {
.. ..
    server {
        listen       80;                           #端口
        server_name  www.b.com;                    #定义虚拟主机域名
        location / {
            root   html_b;                         #指定网站根路径
            index  index.html index.htm;           #默认页面
        }
}
    server {
    listen  80;                                 #端口
    server_name  www.a.com;                     #定义虚拟主机域名
...    
    location / { 
        root   html;                            #指定网站根路径
        index  index.html index.htm;
    }
}
...
[root@proxy nginx]# /usr/local/nginx/sbin/nginx -s reload   #重新加载配置文件
2)创建网站根目录及对应首页文件
[root@proxy nginx]# echo "nginx-A~~~"  > html/index.html      #创建a网站测试页
[root@proxy nginx]# mkdir html_b                              #创建b网站的目录
[root@proxy nginx]# echo "nginx-B~~~"  > html_b/index.html    #创建b网站测试页

client客户端测试
[root@client ~]# vim  /etc/hosts        #修改hosts文件添加ip和域名的映射关系
192.168.88.5  www.a.com  www.b.com

[root@client ~]# curl  www.a.com
nginx-A~~~
[root@client ~]# curl  www.b.com
nginx-B~~~

如果想在linux中使用浏览器访问,同样在操作
[root@server1 ~]# vim  /etc/hosts    #修改hosts文件添加ip和域名的映射关系
192.168.88.5  www.a.com  www.b.com
浏览器直接访问www.a.com  或 www.b.com 即可

扩展补充:
windows环境配置hosts文件
C:\Windows\System32\drivers\etc\hosts
然后用文本打开hosts,在最后添加
192.168.88.5 www.a.com www.b.com

如果hosts文件是只读,可以
右击hosts文件---属性---安全---编辑---users---完全控制打钩
其他类型的虚拟主机(选做)
1)基于端口的虚拟主机
[root@proxy nginx]# vim conf/nginx.conf  
...
    server {
        listen       8080;               #端口
        server_name  www.a.com;          #域名
        ......
}
    server {
        listen       8000;                #端口
        server_name  www.a.com;           #域名
      .......
}
...
[root@proxy nginx]# sbin/nginx  -s  reload   #重新加载配置文件

client客户端测试
[root@client ~]# curl  www.a.com:8080
nginx-B~~~
[root@client ~]# curl  www.a.com:8000
nginx-A~~~
2)基于IP的虚拟主机(了解,无须操作)
[root@proxy nginx]# vim conf/nginx.conf  
...
   server {
        listen       192.168.88.5:80;    #IP地址与端口
        server_name  www.a.com;          #域名
  ... ...
}
    server {
        listen       192.168.99.5:80;     #IP地址与端口
        server_name  www.a.com;
... ...
}
...
[root@proxy nginx]# /usr/local/nginx/sbin/nginx -s reload   #重新加载配置文件
四、SSL虚拟主机
实验要求
配置基于加密网站的虚拟主机,实现以下目标:
    该站点通过https访问
    通过私钥、证书对该站点所有数据加密
加密算法说明
源码安装Nginx时必须使用--with-http_ssl_module参数,启用加密模块,对于需要进行SSL加密处理的站点添加ssl相关指令(设置网站需要的私钥和证书)

加密算法一般分为对称算法、非对称算法、信息摘要
对称算法有:AES、DES,主要应用在单机数据加密
非对称算法有:RSA、DSA,主要应用在网络数据加密
信息摘要:MD5、sha256,主要应用在数据完整性校验
[root@proxy nginx]# echo 123 > /root/test
[root@proxy nginx]# md5sum  /root/test

[root@proxy nginx]# echo 1234 > /root/test  #更改文件内容
[root@proxy nginx]# md5sum  /root/test      #md5值已经发生变化
配置SSL虚拟主机
1)修改Nginx配置文件,设置加密网站的虚拟主机
[root@proxy nginx]# cp conf/nginx.conf.default conf/nginx.conf  #还原配置文件
[root@proxy nginx]# vim  /usr/local/nginx/conf/nginx.conf
...
server {
        listen       443 ssl;    #监听端口443,ssl使用安全加密技术
        server_name            localhost;
        ssl_certificate      cert.pem;            #这里是证书文件
        ssl_certificate_key  cert.key;            #这里是私钥文件
        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;
        location / {
            root   https;                        #加密网站根目录,更改,也可以自行定义
            index  index.html index.htm;
        }
    }
...    
2)生成私钥与证书
[root@proxy nginx]# openssl genrsa > conf/cert.key            #生成私钥,放到cert.key文件
[root@proxy nginx]# openssl req -x509 -key conf/cert.key > conf/cert.pem    #-x509格式,生成证书,生成过程会询问诸如你在哪个国家之类的问题,可以随意回答
Country Name (2 letter code) [XX]:dc        #国家名
State or Province Name (full name) []:dc    #省份
Locality Name (eg, city) [Default City]:dc  #城市
Organization Name (eg, company) [Default Company Ltd]:dc    #公司
Organizational Unit Name (eg, section) []:dc               #部门
Common Name (eg, your name or your server's hostname) []:dc #服务器名称
Email Address []:dc@dc.com          #电子邮件

[root@proxy nginx]# /usr/local/nginx/sbin/nginx -s reload   #重新加载配置文件
[root@proxy nginx]# mkdir https    #创建安全网站的目录
[root@proxy nginx]# echo "nginx-https~"  > https/index.html     #创建安全网站的页面
3)客户端验证
命令行测试
[root@client ~]# curl  -k  https://192.168.88.5     #检验,-k是忽略安全风险
nginx-https~      #看到这个内容就说明实验成功

真机浏览器访问:https://192.168.88.5

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2238724.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Android、IOS、Flutter、鸿蒙、ReactNative 】文本点击事件

Android Studio 版本 Android Java TextView 实现 点击事件 参考 import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.TextView; import android.widget.Toast;public c…

超30万亿消费规模下,低龄VS高龄、他VS她、共性VS个性的市场机会

作者 | NewAgingPro团队 前言 NewAgingPro团队基于多年研究沉淀&#xff0c;发现每个行业都具备为老年人群再次细分的机会&#xff0c;中国的银发经济市场将围绕老年人需求不断往细分场景垂直深耕。具体哪些需求是市场增长的源动力&#xff1f;40岁泛银发群体的需求趋势如何…

贪心算法-汽车加油

这道题目描述了一个汽车旅行场景&#xff0c;需要设计一个有效的算法来决定在哪几个加油站停车加油&#xff0c;以便最小化加油次数。题目给出了汽车加满油后的行驶距离n公里&#xff0c;以及沿途若干个加油站的位置。我们需要找出一个方案&#xff0c;使得汽车能够完成整个旅程…

【动手学电机驱动】STM32-FOC(6)基于 IHM03 的无感方波控制

STM32-FOC&#xff08;1&#xff09;STM32 电机控制的软件开发环境 STM32-FOC&#xff08;2&#xff09;STM32 导入和创建项目 STM32-FOC&#xff08;3&#xff09;STM32 三路互补 PWM 输出 STM32-FOC&#xff08;4&#xff09;IHM03 电机控制套件介绍 STM32-FOC&#xff08;5&…

CNN实现地铁短时客流预测

项目源码获取方式见文章末尾&#xff01; 600多个深度学习项目资料&#xff0c;快来加入社群一起学习吧。 《------往期经典推荐------》 项目名称 1.【基于CNN-RNN的影像报告生成】 2.【卫星图像道路检测DeepLabV3Plus模型】 3.【GAN模型实现二次元头像生成】 4.【CNN模型实现…

SDL打开YUV视频

文章目录 问题1&#xff1a;如何控制帧率&#xff1f;问题2&#xff1a;如何触发退出事件&#xff1f;问题3&#xff1a;如何实时调整视频窗口的大小问题4&#xff1a;YUV如何一次读取一帧的数据&#xff1f; 问题1&#xff1a;如何控制帧率&#xff1f; 单独用一个子线程给主线…

Linux 系统结构

Linux系统一般有4个主要部分&#xff1a;内核、shell、文件系统和应用程序。内核、shell和文件系统一起形成了基本的操作系统结构&#xff0c;它们使得用户可以运行程序、管理文件并使用系统。 1. linux内核 内核是操作系统的核心&#xff0c;具有很多最基本功能&#xff0c;它…

使用vscode 连接linux进行开发

1. 在Vscode中安装扩展功能remote ssh 2. 打开命令窗口 3. 在弹出的命令窗口输入ssh&#xff0c;并从弹出的提示中选择 Add New SSH Host 4. 在弹出的输入窗口中输入类似下面形式的 连接地址&#xff1a; 5. 输入回车后出现下面的对话框&#xff0c;这个对话框是说你要用哪个…

【C++】 C++游戏设计---五子棋小游戏

1. 游戏介绍 一个简单的 C 五子棋小游戏 1.1 游戏规则&#xff1a; 双人轮流输入下入点坐标横竖撇捺先成五子连线者胜同一坐标点不允许重复输入 1.2 初始化与游戏界面 初始化界面 X 输入坐标后 O 输入坐标后 X 先达到胜出条件 2. 源代码 #include <iostream> #i…

计算机新手练级攻略——如何搜索问题

目录 计算机学生新手练级攻略——如何搜索问题1.明确搜索意图2.使用精确关键词3.使用专业引擎搜索4.利用好技术社区1. Stack Overflow2. GitHub3. IEEE Xplore4. DBLP 5.使用代码搜索工具1. GitHub 代码搜索2. Stack Overflow 代码搜索3. Papers with Code4. IEEE Xplore 6.查阅…

【MySQL】MySQL基础知识复习(下)

前言 上一篇博客介绍了MySQL的库操作&#xff0c;表操作以及CRUD。 【MySQL】MySQL基础知识复习&#xff08;上&#xff09;-CSDN博客 本篇将进一步介绍CRUD操作&#xff0c;尤其是查找操作 目录 一.数据库约束 1.约束类型 1.1NULL约束 1.2UNIQUE&#xff1a;唯一约束 …

从0开始学docker (每日更新 24-11-6)

限制容器运行的资源 限制容器的内存使用 容器的内存包括两部分&#xff1a;物理内存和交换空间&#xff08;swap&#xff09; 用户内存限制 -m,--memory&#xff1a;容器可用的最大内存&#xff0c;该值最低为4MB --memory-swap&#xff1a;允许容器置入磁盘交换空间的内存…

C++初阶——vector

一、什么是vector vector是表示可变大小的数组的序列容器&#xff0c;就像数组一样&#xff0c;vector也采用连续空间来存储元素。也就是说它的访问和数组一样高效&#xff0c;但是它的大小是动态可变的&#xff0c;并且它的大小会被容器自动处理。 二、vector的构造 常用的构…

GIT的基本使用与进阶

GIT的简单入门 一.什么是git&#xff1f; Git 是一个开源的分布式版本控制系统&#xff0c;用于跟踪文件更改、管理代码版本以及协作开发。它主要由 Linus Torvalds 于 2005 年创建&#xff0c;最初是为 Linux 内核开发而设计的。如今&#xff0c;Git 已经成为现代软件开发中…

CulturalBench :一个旨在评估大型语言模型在全球不同文化背景下知识掌握情况的基准测试数据集

2024-10-04&#xff0c;为了提升大型语言模型在不同文化背景下的实用性&#xff0c;华盛顿大学、艾伦人工智能研究所等机构联合创建了CulturalBench。这个数据集包含1,227个由人类编写和验证的问题&#xff0c;覆盖了包括被边缘化地区在内的45个全球区域。CulturalBench的推出&…

C语言中,“extern”关键字的含义与用法

在C语言中&#xff0c;extern 关键字用于声明一个已经在其他地方定义的变量或函数。它的主要作用是告诉编译器&#xff0c;某个变量或函数是在当前文件之外定义的&#xff0c;编译器应该在链接阶段找到这个变量或函数的实际定义。以下是 extern 的一些常见用途和用法&#xff1…

「Mac玩转仓颉内测版1」入门篇1 - Cangjie环境的搭建

本篇详细介绍在Mac系统上快速搭建Cangjie开发环境的步骤&#xff0c;涵盖VSCode的下载与安装、Cangjie插件的离线安装、工具链的配置及验证。通过这些步骤&#xff0c;确保开发环境配置完成&#xff0c;为Cangjie项目开发提供稳定的基础支持。 关键词 Cangjie开发环境搭建VSC…

Kubernetes网络揭秘:从DNS到核心概念,一站式综述

文章目录 一.overlay vs underlayL2 underlayL3 underlay 二、calico vs flannel2.1 calico架构2.2 flannel架构 三、iptables四、Vxlan五、kubernetes网络架构综述六、DNS七、Kubernetes域名解析策略 一.overlay vs underlay overlay网络是在传统网络上虚拟出一个虚拟网络&am…

飞凌嵌入式FET527N-C核心板现已适配Android 13

飞凌嵌入式FET527N-C核心板现已成功适配Android13&#xff0c;新系统的支持能够为用户提供更优质的使用体验。那么&#xff0c;运行Android13系统的FET527N-C核心板具有哪些突出的优势呢&#xff1f; 1、性能与兼容性提升 飞凌嵌入式FET527N-C核心板搭载了全志T527系列高性能处…

破解仓库管理难题!库存管理流程详解

随着市场竞争加剧和客户需求不断提升&#xff0c;企业的仓库管理在日益复杂的供应链环境中面临诸多挑战。许多企业在仓库管理上仍停留在传统手工操作或基础的数字化管理阶段&#xff0c;这种方式容易导致库存信息不准确、管理效率低下、数据滞后等问题。 企业现状 当前&#…