記錄一下第一次在一臺新的阿里雲服務器上部署一個後端服務的過程
- 選擇新的阿里雲賬號,登陸以後選擇一個沒有使用過的服務器
- 詢問管理員服務器登陸的賬號的密碼,或者修改服務器的登陸密碼。
- 一臺從來沒有使用過的服務器,使用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接口可用