동일한 컴퓨터에서 여러 사이트를 제공하고 싶습니다.동일한 서버의 여러 사이트 (하위 도메인)를 서비스하기위한 nginx 구성
각 사이트에 대해 nginx는 포트를 수신하여 앱 서버 (uwsgi)와 통신하고 다른 포트는 프록시 서버로 통신합니다. 각 사이트는 uwsgi 및 플라스크를 사용합니다.
모든 사이트는 동일한 API 끝점 이름을 공유하므로 유일한 차이점은 하위 도메인 이름입니다. 이 같은
뭔가 :
server {
listen 8000 default_server;
server_name 00.myexample.com;
...
}
# Set cache dir
proxy_cache_path /tmp/nginx levels=1:2 keys_zone=my_zone:10m max_size=50m inactive=60m;
proxy_cache_key "$scheme$request_method$host$request_uri";
# Virtualhost/server configuration
server {
listen 80 default_server;
server_name 00.myexample.com;
location/{
proxy_cache my_zone;
include proxy_params;
proxy_pass http://00.myexample.com:8000;
}
...
}
생각이 여러 사이트를 복제 (00.myexample.com, 01.myexample.com) 나는 다른 포트를 수신 대기 할 필요가 단지 것이다.
server_name
이고 충돌을 피하기에 충분한 다른 포트 (예 : 캐시 된 포트)가 있습니까? uwsgi는 각 앱의 다른 포트를 청취해야합니까? (그것은 지금 각 사이트의 폴더에있는 소켓을 통해 nginx와 통신합니다)
여러 대의 하위 도메인을 동일한 컴퓨터로 라우팅하려면 어떤 구성을 사용해야합니까?
동일한 서버를 사용하는 경우 "각 서버 블록에 대해 동일한 값을 proxy_pass에 사용할 수 있습니다." 가치에 의해, 당신은 동일한 포트를 듣고 있다는 것을 의미합니까? 예 : 'server {server_name 00 .. location/{proxy_pass http://00.myexample.com:8000; } ..} #and server {server_name 01 .. location/{proxy_pass http : ///01.myexample.com:8000; } ..}'? 그것은 nginx 캐시와 충돌하지 않을까요? 서버 이름을 동일한 IP 시스템이지만 다른 포트로 라우트 할 수 있습니까? 예 : 00.example.com XX.XXX.XX.XXX:8000, 01.example.com XX.XXX.XX.XXX:7000의 도메인? 어떤 포트가 "일반적으로"무료입니까? – user305883