Nginx와 함께 AWS의 EC2를 사용하고 있습니다.
domain1.com, domain2.com, domain3.com이라는 세 개의 도메인 이름이 있다고 가정해 보겠습니다. 또한 3000, 3001, 3002의 세 가지 다른 포트에 세 개의 레일 애플리케이션이 있다고 가정해 보겠습니다.
이 도메인은 모두 포트 80에서 내 서버에 연결되어 있습니다.
요청된 URL에 따라 포트 80이 요청을 올바른 포트로 리디렉션하기를 원합니다.
가상 호스트 파일을 어떻게 구성해야 합니까? If 블록이 존재한다는 것을 알고 있지만 Nginx는 이를 권장하지 않는 것 같습니다. 내 계획은 EC2에 여러 사이트를 두는 것입니다.
Rails 서버를 차단하므로 Rails 앱 포트에서 서버를 차단할 수 없습니다.
답변1
어느 것에 따라도메인(?) :
server {
listen 80;
server_name .domain1.com; # Wildcard domain
return 301 $scheme://$host:3000$request_uri;
# use $host above because we use a wildcard domain
}
그리고 모든 도메인과 모든 Rails 앱/포트에 대해 이 서버 블록을 반복합니다.
답변2
귀하는 사이트를 다른 포트에 두고 싶고 포트 80에 연결하기를 원한다고 말했습니다. 이것은 명확하지 않습니다.
Nginx는 포트 80에서 다양한 웹사이트를 수신할 수 있으므로 간단히 다른 도메인으로 구성하면 됩니다. 예를 들어
server {
server_name www.example.com;
listen 80;
return 301 https://www.example.com$request_uri;
}
server {
server_name www.example.com;
listen 443 ssl https;
root /var/www/site;
// Insert https stuff here
}
server {
server_name www.example2.com;
listen 80;
root /var/www/site2;
}
server {
server_name www.example3.com;
listen 80;
root /var/www/site3;
}
로드 밸런서와 여러 nginx 인스턴스를 실행할 수도 있지만 이는 의미가 없습니다.