2 분 소요

  • 목표 : jsp 를 이용하여 간단한 로그인 서버를 만들것이다.
  • 환경 : 우분투 22.04
  • MVC ( Model View Controller ) 구조
    1. MVC 모델1 : 클라이언트 <> 아파치 or nginx <> 톰캣 <> JSP <> DB
    2. MVC 모델2 : 클라이언트 <> 아파치 or nginx <> 톰캣<> servlet JSP <> DB

Nginx 설치하기

  1. sudo apt install nginx nginx 설치하기. service nginx status 로 상태를 확인할 수 있다. 설치를 하면 자동으로 동작 시작하는 것을 볼 수 있다.
    nmap localhost 로 열린 포트를 확인할 수 있다.
    Pasted image 20230402175338
    Pasted image 20230402200137
    Pasted image 20230402200423
  2. nginx 중지, 시작, 재시작 명령어.
    sudo service nginx stop
    sudo service nginx start
    sudo service nginx restart
    

톰캣 설치하기

  1. 톰캣 설치하기 전 open jdk 11 부터 설치한다. sudo apt install openjdk-11-jdk -y 명령으로 설치한다.
    Pasted image 20230402183637
  2. 톰캣을 설치 하기 위해 톰캣 10.0.27 버전 먼저 다운로드 받는다
    sudo wget https://archive.apache.org/dist/tomcat/tomcat-10/v10.0.27/bin/apache-tomcat-10.0.27.tar.gz 명령으로 다운받는다.
    Pasted image 20230402184349
  3. 현재폴더에서 압축을 풀어준다.
    tar -xvf apache-tomcat-10.0.27.tar.gz Pasted image 20230402184512
  4. tomcat 동작시키기.
    ./apache-tomcat-10.0.27/bin/startup.sh 톰켓을 시작한다.
    nmap localhost 로 열린 포트를 확인한다
    Pasted image 20230402201051
    [http://localhost:8080]
    Pasted image 20230402201102
  5. 만약 자바를 설치하지 않았거나 JAVA_HOME 환경변수를 지정하지 않으면 오류가 발생할 수 있다. JAVA_HOME 환경변수를 등록하여 오류 해결이 가능하다.

NginX 와 Tomcat 연동하기

  1. 먼저 톰켓을 동작 시켜야한다.
    Pasted image 20230402201051
  2. vi /etc/nginx/nginx.conf 파일을 살폅보면 sites-enabled 폴더 안의 파일들을 살펴보는 것을 알 수 있다.
    Pasted image 20230402210019
  3. sudo vi /etc/nginx/sites-enabled/default 열어보자.
    image
    location /proxy_pass 부분에 tomcat의 동작중인 주소를 넣어준다.
  4. [http://localhost] 로 접속하면 nginx로 연결되는 것이아닌 tomcat으로 연결되는것을 확인할 수 있다. Pasted image 20230402210711

nginx와 tomcat 연동중 발생한 오류

  • 실패1 css 파일 못찾음
    Pasted image 20230403132740 Pasted image 20230403132719
  • 해결법
    • 방법 (1)
      • /etc/nginx/sites-enabled/default 파일의 location / 부분을 살펴보자.
      • try_files $uri $uri/ =404; 부분을 주석처리 안해주면 jsp 가 제대로 동작안하거나 웹사이트가 제대로 동작안 할 수 있다. 따라서 try_files $uri $uri/ =404; 부분을 주석처리해주면 된다.
        Pasted image 20230403134856
    • 방법(2)
      • try_files $uri $uri/ =404; 을 주석처리 하지않고 .css 요청이 들어올 때도 proxy_pass 처리해 준다. /etc/nginx/sites-enabled/default 파일에 넣어주면 된다.
        Pasted image 20230403135114
  • 실패2 jsp는 동작은 하지만 서버가 페이지를 이상하게 만들어서줌. Pasted image 20230403135438
    예상동작
    image
  • 해결법
    • 방법(1)
      • location ~ \.js { 부분에서 add_header Content-Type application/x-javascript; 부분을 주석처리 해주면 된다.
        Pasted image 20230403135944
    • 방법(2)
      • try_files $uri $uri/ =404; 부분을 주석처리 안해주면 jsp 가 제대로 동작안하거나 웹사이트가 제대로 동작안 할 수 있다. 따라서 try_files $uri $uri/ =404; 부분을 주석처리해주면 된다.
  • 주의
    • default 파일 바꾸고 나서 nginx 서버를 재시작해줘야 한다.
      sudo service nginx restart

JSP 동작 테스트

  1. apache-tomcat-10.1.7/webapps/ROOT 위치에 test.jsp 파일을 만들어준다.
  2. 그리고 다음 내용을 test.jsp 파일에 추가해준다.
1
2
3
4
5
6
7
  <html>
  <% String test="hello"; %>
  <script>
          alert('<%=test%>');
  </script>
  </html>
  
  • 동작결과
    http://localhost/test.jsp 또는 http://주소/test.jsp 로 들어가면 alert 창이 뜨는 것을 확인할 수 있다.
    Pasted image 20230403141653
    Pasted image 20230403141721

참고 사이트

댓글남기기