记录一下第一次在一台新的阿里云服务器上部署一个后端服务的过程
- 选择新的阿里云账号,登陆以后选择一个没有使用过的服务器
- 询问管理员服务器登陆的账号的密码,或者修改服务器的登陆密码。
- 一台从来没有使用过的服务器,使用xshell是连接不上的,用密码登陆不上,xshell提示服务器要求用授权过的客户端密钥登陆。
- 这时候在阿里云网页控制台中可以使用云命令行登陆服务器(需要使用账号管理员手机短信验证码)
- 发现服务器上只有9个进程
- 修改服务器登陆密码
- 停止操作系统运行
- 载入已有的操作系统镜像
- 修改服务器网络安全组规则,添加入方向:服务端口和80端口为通过
- 使用xshell登陆服务器。
- 部署服务代码到新的服务器上,并重启服务
- 使用yum安装nginx
- 使用新的域名解析
- ping一下新的域名看域名解析是否可用
- 在新的服务器上修改nginx配置,为新域名添加http配置
- 使用postman测试服务可用性
- 服务监听了多个端口
- 而且服务对外公布的API中,从根目录开始前有一部分路径是做服务区分的,也就是说后端tornado的服务路径只是对外公布的API中的后半部分,同时nginx需要匹配API前缀,把后缀作为端口路径;nginx是通过proxy_pass关键字和绝对路径代理来实现这个需求,具体参看https://blog.csdn.net/ainuser/article/details/80260144
- 在nginx中配置proxy_pass代理转发时,如果在proxy_pass后面的url加/,表示绝对根路径;如果没有/,表示相对路径,把匹配的路径部分也给代理走。
- proxy_pass使用127.0.0.1进行代理时url后要加/
- proxy_pass配合upstream节点进行多端口代理时,/也是添加到proxy_pass中的url后面
- upstream关键字中定义多机器时只能(ip or domain)[+port]使用,port可选,ip和domain二选一,还可以添加负载均衡策略配置,但是不能指定访问的路径。所以proxy中使用upstream名字的时候,/直接添加到upstream名字后面,而不是添加到upstream节点中
- 解决nginx转发问题以后,使用postman和http协议就可以调用服务API了,但是使用https访问不了,postman请求没有response,以为是SSL证书的问题,于是去申请免费证书
- 才发现原有的阿里云账号上已经申请满了20个免费证书,只能另外找账号申请
- 重新找了一个账号以后,成功申请到一个免费的证书,绑定域名的时候,由于域名不在这个账号下,需要进行域名验证,要在原来的域名的域名解析中添加一个新的域名解析记录(域名验证页面会给解析方式)
- 解析好了以后,SSL证书状态从“待验证”变成了待审核,约5分钟以后,状态变为“已签发”,便可以下载证书了(需要选择web服务器类型)
- 证书下载下来是一个zip文件,解压以后得到后缀为.key和.pem的两个文件,需要把这两个文件上传到服务器中的某个位置中
- 修改nginx配置文件,添加https配置,具体参考阿里云文档
https://help.aliyun.com/document_detail/98728.html?spm=a2c4g.11186623.6.574.abd83de4EpdVLw - 途中发现rz命令不能使用,没法上传证书到服务器上
- yum下载 lrzsz
- 重启nignx服务
- 发现postman还是没响应,百度以后搜到“配置好apache SSL之后 浏览器https访问未响应的解决方法”
https://blog.csdn.net/MirrowJJ/article/details/77970357 - 知道是linux防火墙阻止了443端口的访问
- 到阿里云网页控制台上修改网络安全组配置,添加443端口访问
- 使用postman验证接口可用性,https接口可用
来源:CSDN
作者:little_kid_pea
链接:https://blog.csdn.net/little_kid_pea/article/details/103584491