一、購買雲服務器ECS
9.5元一個月真香
操作系統選Ubuntu
二、服務器配置
遠程連接推薦用阿里雲自帶的,用putty的話后面gunicorn連接的時候老是有蜜汁錯誤
然后添加新用戶,改python3,升級pip,改pip源啥的就不具體說了
三、添加Flask工程
main.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run()
requirements.txt
click==7.1.1
Flask==1.1.2
itsdangerous==1.1.0
Jinja2==2.11.1
MarkupSafe==1.1.1
Werkzeug==1.0.1
目錄結構:
- main.py
/home/xxx/code/helloflask -
- requirements.txt
四、創建虛擬環境
pip install virtualenv
cd /home/xxx/code/helloflask
virtualenv venv
這樣就在helloflask文件夾下創建了叫venv的虛擬環境
進入虛擬環境:
source venv/bin/activate
五、安裝依賴
pip install -r requirements.txt
六、運行一下看看
python main.py
正常運行,安心退出程序
七、gunicorn
pip install gunicorn
然后就能用gunicorn運行程序了:
gunicorn -w worker數量 -b ip:端口號 運行文件名:flask實例名
例:
gunicorn -w 3 -b 127.0.0.1:5000 main:app
八、外網訪問
在阿里雲服務器管理控制台中,左邊那一欄中找到網絡與安全-安全組
添加安全組規則:
https://help.aliyun.com/document_detail/25475.html?spm=5176.2020520101.0.0.25b84df5shveJP#allowHttp
改這三個地方就行
建議開放80端口和任何你想開放的端口
80端口是HTTP端口
訪問xxx.xxx.xxx.xxx:80 = 訪問http://xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx是公網ip)
然后在終端中
gunicorn -w 3 -b 0.0.0.0:8080 main:app
這樣就能在外網訪問xxx.xxx.xxx.xxx:8080了
其他端口同理
九、Nginx
sudo apt-get install nginx
sudo rm /etc/nginx/sites-available/default
sudo vim /etc/nginx/sites-available/default
然后輸入
server {
listen 80;
server_name xxx.xxx.xxx.xxx; # 公網ip
location /{
proxy_pass http://127.0.0.1:5000; }
}
保存退出
:wq
這樣當執行
gunicorn -w 3 -b 127.0.0.1:5000 main:app
的時候,也能通過訪問xxx.xxx.xxx.xxx來訪問網站
十、綁定域名
買了域名后,域名解析下就行
域名解析中記錄值填公網ip
接着訪問域名就跟訪問公網ip效果一樣了
接着就會發現沒有備案不讓你訪問啦
接着就是漫長的等備案