记录阿里云服务配置 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 即可解决

 

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值