1개 서버에서 2개 이상의 서비스를 연결해야할 상황이 발생했다. nginx 에서 sites-available에 연결하려는 서비스에 대한 사이트 정보를 정의하면 된다.

  • honeymon.io 였던 사이트를 다음과 같이 분리한다고 가정해보자.

    • a.ihoneymon.io

    • b.ihoneymon.io

과정

  1. /etc/nginx/sites-available 내에 연결하려는 사이트 파일을 각각 생성한다.

    • /etc/nginx/sites-available/a.ihoneymon.io

    • /etc/nginx/sites-available/b.ihoneymon.io

  2. a.ihoneymon.io와 b.ihoneymon.io를 각각 작성한다.

    #
    # A virtual host using mix of IP-, name-, and port-based configuration
    #
    
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;
    
    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}
    
    server {
            listen 80;
            listen [::]:80;
            server_name <<site-address>>;
    
            location / {
                proxy_pass http://localhost:8081;
                proxy_set_header        Host            $host;
                proxy_set_header        X-Real-IP       $remote_addr;
                proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                #proxy_set_header        X-Forwarded-Host $host;
                #proxy_set_header        X-Forwarded-Server $host;
                proxy_set_header        X-Forwarded-Proto $scheme;
            }
    }
  3. a.ihoneymon.io와 b.ihoneymon.io를 /etc/nginx/sites-enabled에 연결한다.

    $ sudo ln -s /etc/nginx/sites-available/a.honeymon.io /etc/nginx/sites-enabled/
    $ sudo ln -s /etc/nginx/sites-available/b.honeymon.io /etc/nginx/sites-enabled/
  4. nginx 설정 테스트

    $ sudo nginx -t
    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok     
    nginx: configuration file /etc/nginx/nginx.conf test is successful
    정상적인 경우
  5. 테스트를 마치면 nginx 를 재시작한다.

    $ sudo systemctl restart nginx
  6. 설정한 사이트에 대한 DNS 설정을 마치고 접속해서 확인한다.


+ Recent posts