这几天公司配置电商小程序需要使用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组件安装成功
文章来源地址https://www.toymoban.com/news/detail-769158.html
2、运行./nginx -V 提示 bash: ./nginx: Permission denied(没遇到的略过)
这是由于当前用户没有权限使用,可能使用的是depeloyer用户登录的,sbin文件所有者是root
上面这种就需要使用chown方法进行授权,如下 chown developer sbin/ 即可解决
3、运行./nginx 启动时 提示 bash: ./nginx: Permission denied (没遇到的略过)
这是新替换的nginx没有权限导致,使用chmod +x nginx 即可解决
目前遇到的坑都写了一遍,还有问题的可以留言讨论文章来源:https://www.toymoban.com/news/detail-769158.html
到了这里,关于记录阿里云服务配置 https 地址,各种报错问题处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!