nginx配置ssl证书,实现https安全访问.

打印 上一主题 下一主题

主题 1659|帖子 1659|积分 4977

前置条件:
名称 ip地点端标语
nginx服务器192.168.59.3080/443
server服务器190.168.59.318080/8081/8082
安装nginx服务:
参见: 编译安装nginx-CSDN博客
启动后端web服务器192.168.59.31:

(#后端要被署理的web服务器要有docker服务并且配置相关的加快服务)

拉取tomcat容器镜像:

  1. #web1机器拉取镜像
  2. [root@web1 ~]$docker pull registry.cn-beijing.aliyuncs.com/scorpio/tomcat:lates
  3. #检查镜像是否成功拉取
  4. [root@web1 ~]$docker images
  5. REPOSITORY                                        TAG       IMAGE ID       CREATED       SIZE
  6. registry.cn-beijing.aliyuncs.com/scorpio/tomcat   latest    df50c9d355cf   6 years ago   463MB
复制代码
启动容器镜像:

  1. #下载好的容器镜像启动tomcat服务
  2. [root@web1 ~]$docker run -d -p 8080:8080 --name tomcat registry.cn-beijing.aliyuncs.com/scorpio/tomcat
  3. #
  4. [root@web1 ~]$docker run -d -p 8081:8080 --name tomcat2 registry.cn-beijing.aliyuncs.com/scorpio/tomcat
  5. #
  6. [root@web1 ~]$docker run -d -p 8082:8080 --name tomcat3 registry.cn-beijing.aliyuncs.com/scorpio/tomcat
复制代码
查抄容器镜像创建情况

  1. #容器创建成功
  2. [root@web1 ~]$docker ps
  3. CONTAINER ID   IMAGE                                             COMMAND             CREATED        STATUS        PORTS                                       NAMES
  4. 3ecd40461c2c   registry.cn-beijing.aliyuncs.com/scorpio/tomcat   "catalina.sh run"   35 hours ago   Up 35 hours   0.0.0.0:8082->8080/tcp, :::8082->8080/tcp   tomcat3
  5. b207aebf5c26   registry.cn-beijing.aliyuncs.com/scorpio/tomcat   "catalina.sh run"   35 hours ago   Up 35 hours   0.0.0.0:8081->8080/tcp, :::8081->8080/tcp   tomcat2
  6. f59eba49fb2d   registry.cn-beijing.aliyuncs.com/scorpio/tomcat   "catalina.sh run"   37 hours ago   Up 37 hours   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp   tomcat
复制代码
查抄宿主机映射端口

  1. #端口启动成功
  2. [root@web1 ~]$netstat -lntup
  3. Active Internet connections (only servers)
  4. Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
  5. tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      12269/docker-proxy
  6. tcp        0      0 0.0.0.0:8081            0.0.0.0:*               LISTEN      12472/docker-proxy
  7. tcp        0      0 0.0.0.0:8082            0.0.0.0:*               LISTEN      12608/docker-proxy
  8. tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1013/sshd
  9. tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1138/master
  10. tcp6       0      0 :::8080                 :::*                    LISTEN      12275/docker-proxy
  11. tcp6       0      0 :::8081                 :::*                    LISTEN      12477/docker-proxy
  12. tcp6       0      0 :::8082                 :::*                    LISTEN      12613/docker-proxy
  13. tcp6       0      0 :::22                   :::*                    LISTEN      1013/sshd
  14. tcp6       0      0 ::1:25                  :::*                    LISTEN      1138/master
复制代码
检察服务页面是否启动成功


配置nginx服务器 192.168.59.30

(这里配置的域名以及证书需要本身从购买和申请.域名可以买个几块钱的,证书可以申请免费的)
  1. [root@ansible-leader /usr/local/nginx/conf]$vim nginx.conf
  2. # 不指定运行Nginx的工作进程用户,默认使用安装时设定的用户
  3. #user  nobody;
  4. worker_processes  1; # 设置工作进程的数量为1
  5. events {
  6.     worker_connections  1024; # 每个工作进程允许的最大连接数为1024
  7. }
  8. http { # HTTP服务的相关配置
  9.     include       mime.types; # 包含MIME类型定义文件
  10.     default_type  application/octet-stream; # 默认的MIME类型
  11.     sendfile        on; # 开启高效文件传输模式
  12.     keepalive_timeout  65; # 客户端连接保持活动状态的超时时间设置为65秒
  13.     upstream httpds { # 定义一个名为httpds的上游服务器组
  14.         server 192.168.59.31:8080 weight=6; # 第一台后端服务器,权重为6
  15.         server 192.168.59.31:8081 weight=2; # 第二台后端服务器,权重为2
  16.         server 192.168.59.31:8082 weight=2; # 第三台后端服务器,权重为2
  17.     }
  18.     server { # 配置一个虚拟主机
  19.         listen       80; # 监听80端口
  20.         #server_name  localhost; # 注释掉了默认的服务器名
  21.         server_name  www.mfzz.xyz; # 设置服务器名为www.mfzz.xyz
  22.         return 301 https://$host$request_uri; # 将所有HTTP请求重定向到HTTPS
  23.         error_page   500 502 503 504  /50x.html; # 自定义错误页面位置
  24.         location = /50x.html { # 当出现500、502、503或504错误时显示此页面
  25.             root   html; # 错误页面位于html目录下
  26.         }
  27.     }
  28.     server { # HTTPS服务配置
  29.         listen 443 ssl; # 监听443端口,并启用SSL
  30.         server_name www.mfzz.xyz; # 设置服务器名为www.mfzz.xyz
  31.         ssl_certificate /etc/ssl/nginx_certs/mfzz.xyz.pem; # SSL证书路径
  32.         ssl_certificate_key /etc/ssl/nginx_certs/mfzz.xyz.key; # SSL证书密钥路径
  33.         # SSL安全配置
  34.         ssl_protocols TLSv1.2 TLSv1.3; # 使用的协议版本
  35.         ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256'; # 加密套件
  36.         ssl_prefer_server_ciphers on; # 优先使用服务器指定的加密套件
  37.         location / { # 处理所有请求
  38.             proxy_pass http://httpds; # 反向代理至httpds上游服务器组
  39.             proxy_set_header Host $host; # 设置请求头中的Host字段
  40.             proxy_set_header X-Real-IP $remote_addr; # 设置真实的客户端IP地址
  41.             proxy_set_header X-Forwarded-Proto https; # 设置转发协议为https
  42.         }
  43.     }
  44. }
复制代码
查抄nginx配置文件语法并重新加载配置

  1. [root@ansible-leader /usr/local/nginx/conf]$nginx -t
  2. nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
  3. nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
  4. #
  5. 加载配置
  6. [root@ansible-leader /usr/local/nginx/conf]$nginx -s reload
复制代码
检察页面证书加载情况



证书加载成功.



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

玛卡巴卡的卡巴卡玛

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表