一个服务器跑多个网站
0
在 MSV 结构中,多个网站部署在一个服务器方案:
/home/ubuntu/
├── A/ # 项目 A
│ ├── app/
│ ├── deploy/
│ │ └── docker/
│ │ ├── Dockerfile
│ │ ├── docker-compose.yml # 只有 web,端口 8001
│ │ ├── entrypoint.sh
│ │ └── gunicorn.py
│ └── .../
├── B/ # 项目 B
│ ├── app/
│ ├── deploy/
│ │ └── docker/
│ │ ├── Dockerfile
│ │ ├── docker-compose.yml # 只有 web,端口 8002
│ │ ├── entrypoint.sh
│ │ └── gunicorn.py
│ └── .../
└── nginx/ # 宿主机 Nginx(不装在 Docker 里)
├── nginx.conf # 主配置,include conf.d/*.conf
└── conf.d/
├── A.conf # server_name A-domain.com → proxy_pass :8001
├── B.conf # server_name B-domain.com → proxy_pass :8002
└── ssl/
├── A_bundle.crt
├── A.key
├── B_bundle.crt
└── B.key
主配置代码:
user www-data;
worker_processes auto;
pid /run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
client_max_body_size 50M;
limit_req_zone $binary_remote_addr zone=req_per_ip:10m rate=15r/s;
limit_req_zone $server_name zone=req_per_server:10m rate=200r/s;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
include /home/ubuntu/nginx/conf.d/*.conf;
}