본문 바로가기
SW/Node.js

Ububtu 우분투 NGINX node.js 2차 도메인 이용 프록시 (proxy) 설정 및 확인

by bigju 2023. 8. 28.

1. Nginx 설치

https://bigju.tistory.com/entry/%EC%9A%B0%EB%B6%84%ED%88%AC-Ubuntu-2204-nginx-yum-%EC%84%A4%EC%B9%98-%EB%B0%8F-virtual-host-%EC%84%A4%EC%A0%95

 

우분투 (Ubuntu) 22.04 nginx yum 설치 및 virtual host 설정

1. 업데이트 및 Nginx 설치 sudo apt update -y // 업데이트 sudo apt install nginx -y //niginx 설치 systemctl status nginx // nginx 상태확인 2. Nginx 시작 및 확인 systemctl start nginx // nginx 시작 netstat -tnlp // 포트 체크 3. Ni

tistory.bigju.co.kr


2. Node.js 설치

< Using Ubuntu>

curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash -

<설치>

sudo apt-get install nodejs -y

 

<확인>

node -v

npm -v // npm은 nodejs 설치하면 설치된다.

 


3.  Node.js 구동 테스트

<파일 작성>
*저는 개인적으로 쓰는 서버가 있어 도메인과 연결되어 있는 /home 디렉터리에 작성했습니다.

-> 각자 맞는 경로에 작성하시면 됩니다.

(기본 경로 : /var/www/html/)


<파일 열기>

vi /home/bigju/public_html/index.js

<작성>

vi /home/bigju/public_html/index.js

var http = require ('http');

http.createServer (function (request, response) {

    response.writeHead (200, {'Content-Type': 'text/html'});
    response.end ('<h1>Welcome to node.js</h1>');

}).listen (3333, function () {  // 3333은 node 포트

	console.log ('Listening on 127.0.0.1:3333');  // 3333은 node 포트

});

* 3333 node 포트는 개인이 상황에 맞게 포트를 자유롭게 설정해 주시면 됩니다.

-> 주의 할점 : 이미 사용중인 포트를 사용할 경우 충돌이 날 수 있으니 비어있는 포트 사용 권장 드립니다.

 


4. 도메인 Came 설정

bigju.co.kr cname node.bigju.co.kr

<cname>

도메인 별칭 서비스다.

bigju.co.kr를 웹에서 출력할 때 node.bigju.co.kr을 가져오라는 설정이다.

 

<↓도메인 레코드 값 알아보기↓>

https://bigju.tistory.com/entry/%EB%8F%84%EB%A9%94%EC%9D%B8-%EB%A0%88%EC%BD%94%EB%93%9C-%EA%B0%92-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0-%EB%8F%84%EB%A9%94%EC%9D%B8-%EC%A3%BC%EC%86%8C-%EC%84%9C%EB%B2%84-%EC%97%B0%EA%B2%B0-%ED%99%88%ED%8E%98%EC%9D%B4%EC%A7%80-%EC%97%B0%EA%B2%B0

 

도메인 레코드 값 설정하기 [도메인 주소 / 서버 연결/ 홈페이지 연결 ]

도메인 주소라고 한다면 어떤건지 알 수 있나요? 인터넷 주소라고 불리웁니다. 야! 네이버 주소 뭐였지? 아 네이버 www.naver.com 이지! 여기서 말하는 www.naver.com 이 도메인 즉 인터넷 주소입니다. 최

tistory.bigju.co.kr


5. nginx virtualHost 작성

 

<기본 web 파일 경로 작성>

vi /etc/nginx/sites-enabled/node.bigju.co.kr.conf

<작성>

server {
        listen 80;
        listen [::]:80;

        root /home/bigju/public_html;   //web 경로

        index index.php index.html index.htm index.nginx-debian.html;

        server_name node.bigju.co.kr;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
        }

        # pass PHP scripts to FastCGI server
        #
        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
        #
        #       # With php-fpm (or other unix sockets):
        #       fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        #       # With php-cgi (or other tcp sockets):
                fastcgi_pass 127.0.0.1:9000;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #       deny all;
        #}
}
}

6. proxy 파일 작성

 

<proxy 설정을 잡을 2차 도메인 bigju.co.kr로 설정해 준다>

vi /etc/nginx/sites-enabled/bigju.co.kr.conf

<파일 작성>

server {

    listen 80;
    server_name bigju.co.kr;

    location / {
      proxy_set_header Host $http_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-Proto $scheme;
      proxy_set_header X-NginX-Proxy true;
      proxy_pass http://127.0.0.1:3333/;
      proxy_redirect off;

    }

    log_not_found off;

    gzip on;
    gzip_comp_level 2;
    gzip_proxied any;
    gzip_min_length  1000;
    gzip_disable "MSIE [1-6]\.(?!.*SV1)";
    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript text/x-js;
 }

<주의>

*포트 3333은 개인이 설정한 포트를 입력해 줍니다.

*80 포트는 nginx가 구동 중인 포트 

* proxy_pass :  server_name에 적어둔 도메인으로 접속할 때 연결해 줄 주소와 포트


7. nginx 재시작

 

<구문 확인>

nginx -t   // 구문 테스트

systemctl restart nginx // nginx 재시작

8. 링크 설정

 

<conf 파일 링크>

 cd /etc/nginx/sites-enabled

sudo ln -s /etc/nginx/sites-available/node.bigju.conf node.bigju.conf 

systemctl restart nginx

9. node.js 구동

 

<실행>

cd /home/bigju/public_html/

node index.js &  // 구동 시작

10. 확인

 

<기본 확인>

http://IP:3333/
ex) http://node.bigju.co.kr:3333/

<proxy 확인>

http://IP
ex) http://bigju.co.kr


<뭐가 다른가?>

기본 설정은 http://node.bigju.co.kr:3333/ 포트까지 적어줘야 node.js 출력이 가능했지만

proxy 설정은 해주면 포트 없이 bigju.co.kr 작성만 해도 나온다.

 

 

<결론>

1. bigju.co.kr을 출력 입력했을 때 came인 node.bigju.co.kr을 불러온다.

2. 불려 온 node.bigju.co.kr에 연결된 파일을 오픈

3. node.bigju.co.kr에 연결된 포트 proxy 3333 포트 연결된 node.js를 불러온다. 

Big Ju

댓글

메인으로가기


    

Big Ju

IT Engineer


항상 답을 위해 노력하는

엔지니어입니다.

 

 

    


 UP!