【发布时间】:2021-06-01 07:55:37
【问题描述】:
让每个应用程序自行运行后,您需要在应用程序、nginx 和 gunicorn/service 文件中指定端口。我正在使用 AWS 和 Centos 8 操作系统。
【问题讨论】:
标签: nginx flask gunicorn centos8
让每个应用程序自行运行后,您需要在应用程序、nginx 和 gunicorn/service 文件中指定端口。我正在使用 AWS 和 Centos 8 操作系统。
【问题讨论】:
标签: nginx flask gunicorn centos8
下面将显示运行这两个应用程序所需的文件集。在每组文件中,我将有一个文件将在端口 80 上运行,因此无需指定端口,当您想在端口 5000 中运行应用程序时,这会派上用场。第二个文件(App2在每组中)将用于将在端口 3000 上运行的应用程序。端口 3000 是我选择的替代端口,只是因为我看到其他人这样做并且它有效。
VM 上的文件夹结构:
文件设置: /home/ec2-user/environments/App1directory/run.py
from App1 import create_app
app = create_app()
if __name__ == '__main__':
app.run(debug=False,host="0.0.0.0")
/home/ec2-user/environments/App2directory/run.py
from App2 import create_app
app = create_app()
if __name__ == "__main__":
app.run(host="0.0.0.0",port=3000)
App1Domain.com.conf
server {
server_name www.App1domain.com App1domain.com;
root /home/ec2-user/environments/App1;
location /static {
alias /home/ec2-user/environments/App1/App1/static;
}
location/{
proxy_pass http://localhost:8000;
include /etc/nginx/proxy_params;
proxy_redirect off;
}
}
server {
listen 80;
listen [::]:80;
server_name www.App1domain.com App1domain.com;
root /home/ec2-user/environments/App1;
}
App2Domain.com.conf
server {
server_name www.App2domain.com App2domain.com;
root /home/ec2-user/environments/App2;
location /static {
alias /home/ec2-user/environments/App2/App2/static;
}
location / {
proxy_pass http://localhost:3000;
include /etc/nginx/proxy_params;
proxy_redirect off;
}
}
server {
listen 80;
listen [::]:80;
server_name www.App2domain.com App2domain.com;
root /home/ec2-user/environments/App2;
}
App1.service
[Unit]
Description=Gunicorn instance to serve App1 from App1 conda environment
After=network.target
[Service]
User=ec2-user
WorkingDirectory=/home/ec2-user/environments/App1
Environment="PATH=/home/ec2-user/miniconda3/envs/[App1envName]/bin"
ExecStart=/home/ec2-user/miniconda3/envs/[App1envName]/bin/gunicorn -w 3 run:app
[Install]
WantedBy=multi-user.target
App2.service
[Unit]
Description=Gunicorn instance to serve App2 from App2 conda environment
After=network.target
[Service]
User=ec2-user
WorkingDirectory=/home/ec2-user/environments/App2
Environment="PATH=/home/ec2-user/miniconda3/envs/[App2envName]/bin"
ExecStart=/home/ec2-user/miniconda3/envs/[App2envName]/bin/File setup:
/home/ec2-user/environments/App1directory/run.py
【讨论】: