记录阿里云服务配置 https 地址,各种报错问题处理

您所在的位置:网站首页 阿里云公用dns地址 记录阿里云服务配置 https 地址,各种报错问题处理

记录阿里云服务配置 https 地址,各种报错问题处理

2023-07-13 03:02| 来源: 网络整理| 查看: 265

        这几天公司配置电商小程序需要使用https地址,也就是后台服务需要配置https 端口,百度使用方法,有些坑需要注意,这里做个笔录,记录下来

1、云服务器本身地址是http的,初始是IP地址+端口的模式,需要有一级域名才能解析二级域名使用,这里不在复述。

2、需要先在云解析DNS中配置二级域名到对应的服务器,如下图:

点击解析设置-添加记录

         以上完成后,说明服务器已经配置好二级域名,在浏览器中使用改二级域名+端口即可访问服务器,但是地址是http的,之前说过小程序方面要求地址得是https的,所以继续配置

1、申请证书,进入 数字证书管理服务 即可创建证书,这里不在复述,不会的可以在百度,有很多文章,跟上面配置二级域名差不多,审核通过下载nginx的证书就可以

文件有2个,1是 xxx.pem 还有一个是 xxx.key 文件,将这2个文件放到服务器某个目录下面

这里举例使用/xxx/abc/目录存储,下面会使用,2个文件分别为:

/xxx/abc/abc.pem 和 /xxx/abc/abc.key。

2、配置nginx,配置https需要用到nginx服务,这里不在复述,百度一样有很多,这里不是重点 就不写操作方法了

3、以上方法完成后,开始正题,首先打开对应nginx的配置文件nginx.conf文件,添加如下代码

# afront-api配置是请求转发到后台对应服务

upstream afront-api {             server 127.0.0.1:2000 weight=1 max_fails=2 fail_timeout=30s;         }

#这个server是请求入口,默认80端口,通过http://abc.com方式请求进来,然后通过rewrite重定向到https,会进入到下面一个server中

 server {     listen 80;     server_name abc.com; #将xxx替换成证书绑定的域名。上面二级域名写的是abc.com,这里使用abc.com举例     rewrite ^(.*)$ https://$host$1; #将所有HTTP请求通过rewrite指令重定向到HTTPS。     error_page   500 502 503 504  /50x.html;         location = /50x.html {             root   html;         }

        location /api/ {             proxy_pass http://afront-api;#转发使用上面配置的afront-api地址             proxy_connect_timeout 120000;             proxy_read_timeout 120000;         }     }

#通过rewrite重定向到https也就是下面这个server中,这里地址就变为了https://abc.com/,然后通过location /api/ 请求后台服务

   server {         listen 443 ssl;         #配置HTTPS的默认访问端口为443。         #如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。         #如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。         server_name abc.com;         root html;         index index.html index.htm;         ssl_certificate /xxx/abc/abc.pem;   #这里使用前面文章中申请证书的目录         ssl_certificate_key /xxx/abc/abc.key;  #这里使用前面文章中申请证书的目录         ssl_session_timeout 5m;         ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;         #表示使用的加密套件的类型。         ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; #表示使用的TLS协议的类型,您需要自行评估是否配置TLSv1.1协议。         ssl_prefer_server_ciphers on;         location /api/ {             proxy_pass http://afront-api;             proxy_connect_timeout 120000;             proxy_read_timeout 120000;         }      }    

4、重启nginx 命令:./nginx -s reload

以上是理想情况下,直接可以成功的,下面说说遇到的一些问题

1、ssl组件服务没有安装

 当修改配置文件上传到服务器,验证时会提示如下:

nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in 。。。

这里是ssl组件没有安装,安装如下

) 首先进入nginx安装目录,注意是安装目录,就是下载的nginx包 解压后的目录,运行如下语句

1:cd /my_software/nginx/nginx-1.18.0

2:./configure --prefix=/usr/local/blog/nginxconf --with-http_stub_status_module --with-http_ssl_module

 完成后输入 make 进行安装

3、注意按照完成以后,在nginx安装目录下有个 objs 目录,文件夹里面有个nginx文件

 4、将这个文件拷贝出来,复制到nginx/conf/sbin,替换掉即可(原来文件可以先备份,防止出错)

5、在sbin目录运行刚刚替换过来的文件,运行./nginx -V,提示如下图代码ssl组件安装成功

 

 

 2、运行./nginx -V 提示 bash: ./nginx: Permission denied(没遇到的略过)

这是由于当前用户没有权限使用,可能使用的是depeloyer用户登录的,sbin文件所有者是root

上面这种就需要使用chown方法进行授权,如下 chown developer sbin/  即可解决

 3、运行./nginx 启动时 提示 bash: ./nginx: Permission denied (没遇到的略过)

 这是新替换的nginx没有权限导致,使用chmod +x nginx 即可解决

 

目前遇到的坑都写了一遍,还有问题的可以留言讨论

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3