Linux基础41 全站https, 项目全站https, 阿里云负载均衡, 阿里云https

发布时间 2023-10-24 11:20:49作者: 战斗小人

三、全站HTTPS

前端和后端所有的链接都是https

如下图(采用下面的方式, 上面的方式可以当没必要, 内部通讯没必要https)

1.环境准备

主机外网IP内网IP身份
lb01 10.0.0.4 172.16.1.4 负载均衡
web01   172.16.1.7 web服务器
web02   172.16.1.8 web服务器

2.配置web服务器

[root@web01 conf.d]# vim s.linux.com.conf
server {
    listen 80;
    server_name s.linux.com;

    location / {
        root /code/https;
        index index.html;
    }
}
[root@web01 conf.d]# systemctl restart nginx

# 同步配置文件到web02
[root@web01 conf.d]# scp s.linux.com.conf 172.16.1.8:/usr/local/nginx/conf/conf.d
[root@web02 conf.d]# systemctl restart nginx

#配置站点目录文件
[root@web01 conf.d]# echo "https1111" > /code/https/index.html
[root@web01 conf.d]# chown -R www.www /code/https
[root@web02 conf.d]# mkdir /code/https
[root@web02 conf.d]# echo "https2222" > /code/https/index.html
[root@web02 conf.d]# chown -R www.www /code/https

3.推送、上传证书文件

[root@web01 conf.d]# scp -r /etc/nginx/ssl-key/ 172.16.1.4:/etc/nginx/

4.配置负载均衡机器nginx

[root@lb01 conf.d]# vim s.linux.com.conf
upstream webserver {
    server 172.16.1.7:80;
    server 172.16.1.8:80;
}

server {
    listen 443 ssl;
    server_name s.linux.com;
    ssl_certificate /etc/nginx/ssl-key/server.crt;
    ssl_certificate_key /etc/nginx/ssl-key/server.key;

    location / {
        proxy_pass http://webserver;
        proxy_set_header host $http_host;
    }
}

server {
    listen 80;
    server_name s.linux.com;
    return 302 https://$server_name$request_uri;
}

5.配置hosts,访问测试

 

四、项目全站HTTPS

1.配置web端phpmyadmin

[root@web01 conf.d]# vim phpmyadmin.conf
server {
    listen 80;
    server_name php.linux.com;

    location / {
        root /code/phpmyadmin;
        index index.php;
    }

    location ~ \.php$ {
        root /code/phpmyadmin;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param HTTPS on;    # 告诉后端php文件是用HTTPS连接的(不配phpmyadmin会报服务器和客户端指示的HTTPS不匹配)
        include fastcgi_params;
    }
}

# 把文件推送的web02上
[root@web01 conf.d]# scp phpmyadmin.conf 172.16.1.8:/etc/nginx/conf.d/

2.配置负载均衡phpmyadmin

[root@lb01 conf.d]# vim phpmyadmin_proxy.conf
upstream phpmyadmin {
    server 172.16.1.7;
    server 172.16.1.8;
}

server {
    listen 443 ssl;
    server_name php.linux.com;
    ssl_certificate /etc/nginx/ssl-key/server.crt;
    ssl_certificate_key /etc/nginx/ssl-key/server.key;

    location / {
        proxy_pass http://phpmyadmin;
        include proxy_params;
    }
}

server {
    listen 80;
    server_name  php.linux.com;
    return 302 https://$server_name$request_uri;
}

 

五、阿里云配置https

1.购买云主机
如下图,网关和交换机选默认即可(也可以自己创建,创建的机器通过交换机到网关,再到你的电脑,网关要收费)

如下图,公网ip可以选,也可以后面分配或使用弹性公网ip(随意变更)

如下图,安全组,选择开放的端口

如下图,密钥对,在xshell的工具栏,新建用户秘钥生成向导。把秘钥放到阿里云里的秘钥里即可。这里自定义密码即可

设置实例名称和主机名,资源组可以不用设置,可以设置自动释放时间
如下图,给创建的实例设置外网(绑定弹性ip),就可用xshell进行连接

  点击创建弹性公网IP(按理计费,带宽拉满也是一样的价格),创建完,实例上就可以绑定弹性公网ip了
  如一开始设定外网地址,就会固定公网地址,不能移到其他实例上(不想用只能释放)。弹性ip可以解绑,绑定到其他实例

 

# 在web02服务器上操作  (通过弹性ip绑定解绑切换连接)
# 设置计算机名
[root@iZuf65apasapxyjeojd2y7Z ~]# hostnamectl set-hostname web02
[root@iZuf65apasapxyjeojd2y7Z ~]# bash        # 刷新
# 安装nginx
[root@web02 ~]# vim /etc/yum.repos.d/nginx.repo
----------------------------------
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
-----------------------------------
[root@web02 ~]# yum install -y nginx
[root@web02 ~]# yum install -y lrzsz    # 安装传文件命令
[root@web02 conf.d]# vim /etc/nginx/nginx.conf/code.conf
-----------------------------
server {
    listen 80;
    server_name localhost;

    location / {
        root /code;
        index index.html;
    }
}
-----------------------------
[root@web02 conf.d]# systemctl restart nginx
[root@web02 conf.d]# mkdir /code
[root@web02 conf.d]# echo "web02222222222" > /code/index.html

# 在web01上操作
[root@iZuf65apasapxyjeojd2y8Z ~]# hostnamectl set-hostname web01
[root@iZuf65apasapxyjeojd2y8Z ~]# bash
[root@web01 ~]# yum install -y lrzsz
# 安装nginx 同上
[root@web01 conf.d]# mkdir /code
[root@web01 conf.d]# echo "web0111111111" > /code/index.html
# 配负载均衡
如下图,这里选择SLB, 创建传统型负载均衡
可用区一定要选对

# 下面做端口转发,当跳板机使用
如下图,点击开始配置或者点击监听配置向导

如下图,这里选择端口转发TCP/IP转发的,转到web服务的22端口上
监听名称无所谓,可以写上,相当于upstream组的名字

如下图,虚拟服务器组就是upstream(每新建一个虚拟服务器组相当于建了upstream),添加服务器

健康检查无所谓,最后点提交,完成。如下图,因为是端口转发,自动识别成四层负载
此时用xshell输入负载均衡外网ip和5555端口就直接连接到web01了
企业里可以通过负载均衡,多端口跳转到后端多个服务器。后端服务器不用外网ip(端口转发可代替跳板机)
这里点击监听配置向导,再配置6666端口做web02端口转发,当跳板机用

# 正式开始配负载均衡
点击监听配置向导,再添加监听端口,七层负载均衡选HTTP协议,如下图

如下图,添加服务器  端口为80,权重可以修改

如下图,自动判断出是七层负载均衡
访问七层负载均衡ip测试效果

2.解析域名
3.申请域名对应的https证书
# 在阿里云进入数字证书管理服务,SSL证书购买,这里购买免费证书即可,点击证书申请(合理需要有域名)
4.将https证书部署到服务器
# 在证书中选一个,点击部署。如下图 也可以点击下载,自己上传到服务器上

在负载均衡控制台,把80端口删除,添加443端口 如下图

如下图选择证书,添加服务器,提交,此时https可以访问,但是http不可访问

点击监听配置向导,再追加80端口跳转,点击监听跳转,目的监听需要选择 如下图

提交即可  如下图  测试http即可跳转https