记录阿里云服务配置 https 地址,各种报错问题处理 |
您所在的位置:网站首页 › 阿里云公用dns地址 › 记录阿里云服务配置 https 地址,各种报错问题处理 |
这几天公司配置电商小程序需要使用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 |