Laravel - sub domain 적용기

웹서비스를 하다보면 아래와 같이 다양한 sub-domain이 난무 한다.

네이버 sub-domain 예시

  • blog.naver.com
  • news.naver.com
  • ...

위와 같은 sub-domain 을 사용하기 위해선 서버 configuration 수정, 프레임워크 route 수정 등이 필요하다.
tyle에서도 블로그(blog.tyle.io)를 운영하기 위해서 sub-domain 을 필요로 하게 되었다

그래서 적용해보았다.!!

  1. dev server - localhost 적용

    • 호스트 설정
      • Laravel은 valet 을이용하여 local 서버를 띄워서 개발을 하게 된다. 그래서 sub-domain을 하기위한 서버설정을 직접적으로 할 수가 없다.
        하여 우리는 valet이 제공하는 link 기능 또는 symbolic link로 서버설정과 같은 virtual host기능을 대체한다.
    // valet
    $ cd laravel-project  // project 디렉토리로 이동
    $ valet link subdomain.laravel-project // link 키워드로 valet 연결
    
    // symbolic link
    $ ln -s laravel-project subdomain.laravel-project // symbolic link 로 프로젝트 연결
    
    • route 설정
      • Laravel route 설정을 통하여 subdomain을 후킹 하여 라우팅을 분기 하여 준다.
    // wildcard
    Route::group(['domain' => '{subdomain},tyle.io'], function () {
        Route::get('/', 'IndexController@index');
    });
    
    // 명시적 적용
    Route::group(['domain' => 'blog.tyle.io'], function () {
        Route::get('/', 'IndexController@index');
    });
    
  2. production server - nginx 적용

1번 항목 라우트 설정만 production에 맞는 URL 진행 한 이후 실제 운영 서버 configuration을 수정한다.(nginx기준)

```
server{
    listen 80;
    server_name blog.tyle.io;
    return 301 https://blog.tyle.io$request_uri;
}
```


실제 sub-domain을 production에서 사용할 때 라우팅하는 법과 서버 설정에 대해 알 수 있는 좋은 기회였고, 로컬에서 는 또다른 방식으로 해야하는 사고를 넓힐 수 있는 좋은 기회였다.