最近用hyperf写了支付系统,本地调试支付完成,打包上线部署,要解决https协议进行相应的访问,但是hyperf 官方没有找到相关的ssl配置说明。搜了一下soole还是有几个案例说明,据我的了解,swoole是不用nginx进行代理访问的,hyperf 只能是Nginx代理转发。

基本的原理是:配置一个域名 https://pay.com(nginx 配置443端口) 访问后   重定向到 内部 127.0.0.1:9501 (nginx proxy_pass 代理转发方式)

nginx 配置

 1 server
2 {
3 listen 80;
4 listen 443 ssl http2;
5 server_name pay.**.com;#你的域名
6 index index.php index.html index.htm default.php default.htm default.html;
7 root /www/wwwroot/pay.bocew.com/hyperf-skeleton/public; #配置这个目录是为了访问静态资源页面,我的项目资源是放在public下;hyperf server.config 是配置了静态资源目录,一旦使用了nginx就会失效访问 404
8
9 #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
10 #error_page 404/404.html;
11 ssl_certificate /etc/letsencrypt/live/pay.**.com/fullchain.pem; #证书 阿里云下载
12 ssl_certificate_key /etc/letsencrypt/live/pay.**.com/privkey.pem;#证书 我选择的是nginx 下载证书
13 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
14 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
15 ssl_prefer_server_ciphers on;
16 ssl_session_cache shared:SSL:10m;
17 ssl_session_timeout 10m;
18 error_page 497 https://$host$request_uri;
19
20 #SSL-END
30
31 #REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
32 include /www/server/panel/vhost/rewrite/pay.bocew.com.conf;
33 #REWRITE-END
34 location / {
35 proxy_pass http://127.0.0.1:9501; #重点在这里了,127.0.0.1 也可以改成你服务器的IP,我docker hyperf配置是9501映射端口给外网访问
36 proxy_set_header Host $host:$server_port;
37 proxy_set_header X-Real-IP $remote_addr;
38 proxy_set_header X-Real-PORT $remote_port;
39 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
40 }
41 #禁止访问的文件或目录
42 location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
43 {
44 return 404;
45 }
46
47 #一键申请SSL证书验证目录相关设置
48 location ~ \.well-known{
49 allow all;
50 }
51
52 67 }

我这边本地开发环境是window10+Docker Desktop 用的docker配置依赖开发环境,以下是本地项目

说到这里,顺便补充一下:本地项目开发好了以后,只需要进行镜像打包 成 zip格式包,然后上传到正式环境服务器,正式环境安装好docker

进行镜像包导入即可运行。

本地打包镜像

docker save -o hyperf.zip hyperf/hyperf:7.4-alpine-v3.11-swoole

线上服务器上传后执行(一定要测试docker 环境已经安装了 输入docker 会出现命令,中途省了一些具体操作,时间有限没有贴每个细节步骤了,上传方式可以使用 scp -P 22 hypef.zip root@127.0.0.1:/www/wwwroot/pay.com/  然后输入root 密码 即可上传) 

 

docker load --input hyperf.zip 执行完后就能看到一个镜像了,输入docker ps 但是是空的,执行启动命令吧,看下一个步骤

启动镜像下的容器  pay.com换成自己域名,这不是正式域名

docker run -v /www/wwwroot/pay.com/hyperf-skeleton:/hyperf-skeleton \
-p 9501:9501 -it \
--privileged -u root \
--entrypoint /bin/bash \
hyperf/hyperf:7.4-alpine-v3.11-swoole

进行容器后运行启动命令

hyperf-skeleton/bin/hyperf.php serve:watch

下图是项目访问

最新文章

  1. 第二十二篇:在SOUI中使用代码向窗口中插入子窗口
  2. MVP之V和P的交互
  3. Shell入门教程:Shell当中的特殊变量
  4. Http Basic认证
  5. C#导出带有格式的Excel(列宽,合并单元格,显示边框线,加背景颜色等)
  6. Python学习教程(learning Python)--1.2.2 Python格式化输出基础
  7. JS正则表达式之特殊符号
  8. idea不能加载xml
  9. Mysql程序
  10. IE8兼容问题总结---trim()方法
  11. CDH安装系统环境准备——系统版本和安装包下载地址指南
  12. h5跳转
  13. 北大poj- 1008
  14. mysql无密码登陆
  15. Linux 系统最大TCP连接数 调优
  16. python类属性和类方法(类的结构、实例属性、静态方法)
  17. MySQL 5.6学习笔记(数据库基本操作,查看和修改表的存储引擎)
  18. VSTO学习(二)——Excel对象模型
  19. 《剑指offer》面试题32----从1到n整数中1出现的次数
  20. C语言 · Huffuman树

热门文章

  1. PHP全栈开发(一):CentOS 7 配置LAMP
  2. HDU4991 Ordered Subsequence (树状数组优化DP)
  3. HDU2041 超级楼梯 (线性DP)
  4. AgileBoot - 手把手一步一步带你Run起全栈项目(SpringBoot+Vue3)
  5. Java学习之路:流程控制
  6. vulnhub靶场之RED: 1
  7. 认识 Redis client-output-buffer-limit 参数与源码分析
  8. SQL分层查询
  9. Python--网络编程学习笔记系列01 附实战:udp聊天器
  10. UML建模语言、设计原则、设计模式