웹사이트 검색

Ubuntu 22.04에 GlassFish JAVA 애플리케이션 서버를 설치하는 방법


이 페이지에서

  1. 전제 조건
  2. 자바 JDK 설치
  3. Glassfish 서버 다운로드
  4. Glassfish용 시스템 서비스 파일 만들기
  5. Glassfish 비밀번호 설정 및 보안 로그인 사용\n
  6. Glassfish용 리버스 프록시로 Nginx 구성\n
  7. UFW 방화벽 구성\n
  8. Glassfish 웹 인터페이스 액세스
  9. 결론

Glassfish는 Java 기반 애플리케이션을 배포하는 데 사용되는 무료 오픈 소스 서버입니다. 이를 통해 개발자는 편리하고 확장 가능한 엔터프라이즈 애플리케이션을 개발할 수 있습니다. glassfish 프로젝트는 Sun Microsystem에서 시작했으며 현재 Oracle Corporation에서 후원하고 있습니다. Common Development and Distribution License와 GNU General Public License라는 두 가지 무료 소프트웨어 라이센스가 적용됩니다.

이 게시물에서는 Ubuntu 22.04에서 Nginx를 리버스 프록시로 사용하여 Glassfish 서버를 설치하는 방법을 보여줍니다.

전제 조건

  • Ubuntu 22.04를 실행하는 서버.\n
  • 서버 IP를 가리키는 유효한 도메인 이름입니다.\n
  • 루트 암호는 서버에서 구성됩니다.\n

자바 JDK 설치

Glassfish는 Java 기반 애플리케이션입니다. 따라서 서버에 Java JDK를 설치해야 합니다. 다음 명령을 실행하여 설치할 수 있습니다.

apt-get install default-jdk unzip -y

Java가 설치되면 다음 명령을 사용하여 Java 버전을 확인합니다.

java --version

다음 출력에서 Java 버전을 얻을 수 있습니다.

openjdk 11.0.15 2022-04-19
OpenJDK Runtime Environment (build 11.0.15+10-Ubuntu-0ubuntu0.22.04.1)
OpenJDK 64-Bit Server VM (build 11.0.15+10-Ubuntu-0ubuntu0.22.04.1, mixed mode, sharing)

Glassfish 서버 다운로드

먼저 공식 다운로드 페이지에서 Glassfish를 다운로드해야 합니다. 다음 명령으로 다운로드할 수 있습니다.

wget https://download.eclipse.org/ee4j/glassfish/glassfish-6.1.0.zip

다운로드가 완료되면 다운로드한 파일의 압축을 /opt 디렉토리에 풉니다.

unzip glassfish-6.1.0.zip -d /opt/

Glassfish용 Systemd 서비스 파일 생성

다음으로 Glassfish 서비스를 관리하기 위한 systemd 서비스 파일을 생성해야 합니다. 다음 명령으로 만들 수 있습니다.

nano /usr/lib/systemd/system/glassfish.service

다음 줄을 추가합니다.

[Unit]
Description = GlassFish Server v6.1.0
After = syslog.target network.target

[Service]
User = root
ExecStart = /usr/bin/java -jar /opt/glassfish6/glassfish/lib/client/appserver-cli.jar start-domain
ExecStop = /usr/bin/java -jar /opt/glassfish6/glassfish/lib/client/appserver-cli.jar stop-domain
ExecReload = /usr/bin/java -jar /opt/glassfish6/glassfish/lib/client/appserver-cli.jar restart-domain
Type = forking

[Install]
WantedBy = multi-user.target

파일을 저장하고 닫은 다음 systemd 데몬을 다시 로드하여 변경 사항을 적용합니다.

systemctl daemon-reload

다음으로 Glassfish 서비스를 시작하고 시스템 재부팅 시 시작되도록 활성화합니다.

systemctl start glassfish
systemctl enable glassfish

다음 명령을 사용하여 Glassfish 서비스의 상태를 확인할 수도 있습니다.

systemctl status glassfish

다음 출력이 표시되어야 합니다.

? glassfish.service - GlassFish Server v6.1.0
     Loaded: loaded (/lib/systemd/system/glassfish.service; disabled; vendor preset: enabled)
     Active: active (running) since Thu 2022-05-12 15:39:16 UTC; 4s ago
    Process: 5313 ExecStart=/usr/bin/java -jar /opt/glassfish6/glassfish/lib/client/appserver-cli.jar start-domain (code=exited, status=0/SUC>
   Main PID: 5326 (java)
      Tasks: 92 (limit: 2292)
     Memory: 289.3M
        CPU: 12.563s
     CGroup: /system.slice/glassfish.service
             ??5326 /usr/lib/jvm/java-11-openjdk-amd64/bin/java -cp /opt/glassfish6/glassfish/modules/glassfish.jar -XX:+UnlockDiagnosticVMOp>

May 12 15:39:04 ubuntu systemd[1]: Starting GlassFish Server v6.1.0...
May 12 15:39:16 ubuntu java[5313]: Waiting for domain1 to start ..........
May 12 15:39:16 ubuntu java[5313]: Successfully started the domain : domain1
May 12 15:39:16 ubuntu java[5313]: domain  Location: /opt/glassfish6/glassfish/domains/domain1
May 12 15:39:16 ubuntu java[5313]: Log File: /opt/glassfish6/glassfish/domains/domain1/logs/server.log
May 12 15:39:16 ubuntu java[5313]: Admin Port: 4848
May 12 15:39:16 ubuntu java[5313]: Command start-domain executed successfully.
May 12 15:39:16 ubuntu systemd[1]: Started GlassFish Server v6.1.0.

Glassfish 비밀번호 설정 및 보안 로그인 활성화

기본적으로 Glassfish 관리 사용자에게는 비밀번호가 없습니다. 따라서 먼저 설정해야 합니다. 다음 명령을 사용하여 설정할 수 있습니다.

/opt/glassfish6/bin/asadmin --port 4848 change-admin-password

사용자 이름을 제공하라는 메시지가 표시됩니다.

Enter admin user name [default: admin]>admin

사용자 이름으로 admin을 제공하고 Enter 키를 누릅니다. 비밀번호를 입력하라는 메시지가 표시됩니다.

Enter the admin password> 

아무 것도 입력하지 않고 Enter 키를 누르기만 하면 됩니다. 새 비밀번호를 설정하라는 메시지가 표시됩니다.

Enter the new admin password> 
Enter the new admin password again> 

새 비밀번호를 입력하고 Enter 키를 눌러 비밀번호를 설정하십시오.

Command change-admin-password executed successfully.

다음으로 보안 로그인을 활성화해야 합니다. 다음 명령으로 활성화할 수 있습니다.

/opt/glassfish6/bin/asadmin --port 4848 enable-secure-admin

보안 로그인을 활성화하려면 관리 사용자와 암호를 제공하라는 메시지가 표시됩니다.

Enter admin user name>  admin
Enter admin password for user "admin"> 
You must restart all running servers for the change in secure admin to take effect.
Command enable-secure-admin executed successfully.

다음으로 Glassfish 서비스를 다시 시작하여 변경 사항을 적용합니다.

systemctl restart glassfish

Glassfish용 역방향 프록시로 Nginx 구성

다음으로 Nginx를 Glassfish용 리버스 프록시로 설치하고 구성해야 합니다. 먼저 다음 명령을 사용하여 Nginx 서버를 설치합니다.

apt-get install nginx -y

Nginx가 설치되면 Nginx 가상 호스트 구성 파일을 만듭니다.

nano /etc/nginx/conf.d/glassfish.conf

다음 구성을 추가합니다.

upstream glassfish {
  server 127.0.0.1:8080 weight=100 max_fails=5 fail_timeout=5;
}

server {
  listen          80;
  server_name     glassfish.example.com;

  location / {
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://glassfish/hello/;
  }
}

완료되면 파일을 저장하고 닫은 다음 다음 명령을 사용하여 구문 구성 오류에 대해 Nginx를 확인합니다.

nginx -t

모든 것이 정상이면 다음과 같은 결과가 표시됩니다.

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

그런 다음 Nginx 서비스를 다시 시작하여 변경 사항을 적용합니다.

systemctl restart nginx

다음 명령을 사용하여 Nginx의 상태를 확인할 수도 있습니다.

systemctl status nginx

다음 출력이 표시되어야 합니다.

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2022-05-12 16:09:38 UTC; 6s ago
       Docs: man:nginx(8)
    Process: 5687 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 5689 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 5690 (nginx)
      Tasks: 2 (limit: 2292)
     Memory: 2.6M
        CPU: 39ms
     CGroup: /system.slice/nginx.service
             ??5690 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
             ??5691 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""

May 12 16:09:38 ubuntu systemd[1]: Starting A high performance web server and a reverse proxy server...
May 12 16:09:38 ubuntu systemd[1]: Started A high performance web server and a reverse proxy server.

UFW 방화벽 구성

보안상의 이유로 시스템에 UFW 방화벽을 설치하고 구성하는 것이 좋습니다. 먼저 다음 명령을 사용하여 UFW 방화벽을 설치합니다.

apt install ufw -y

UFW 방화벽이 설치되면 다음 명령을 사용하여 필요한 모든 포트와 서비스를 허용하십시오.

ufw allow 'Nginx Full'
ufw allow OpenSSH
ufw allow 4848/tcp
ufw allow 8080/tcp

다음으로 시스템 재부팅 후 시작하도록 UFW 방화벽을 활성화합니다.

ufw enable

이제 다음 명령을 사용하여 UFW 방화벽의 상태를 확인할 수 있습니다.

ufw status

다음과 같은 결과가 표시됩니다.

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
Nginx Full                 ALLOW       Anywhere                  
8080/tcp                   ALLOW       Anywhere                  
4848/tcp                   ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)             
Nginx Full (v6)            ALLOW       Anywhere (v6)             
8080/tcp (v6)              ALLOW       Anywhere (v6)             
4848/tcp (v6)              ALLOW       Anywhere (v6)             

Glassfish 웹 인터페이스에 액세스

이제 URL http://glassfish.example.com을 사용하여 Glassfish에 액세스할 수 있습니다. 다음 페이지가 표시됩니다.

Glassfish 관리 인터페이스에 액세스하려면 URL https://your-server-ip:4848을 입력하십시오. Glassfish 로그인 페이지로 리디렉션됩니다.

관리자 사용자 이름, 암호를 제공하고 로그인 버튼을 클릭합니다. 다음 페이지에 Glassfish 대시보드가 표시되어야 합니다.

왼쪽 창에서 서버를 클릭합니다. 일반 정보 페이지가 표시되어야 합니다.

여기에서 Glassfish 서버를 시작, 중지 및 모니터링할 수 있습니다.

왼쪽 창에서 노드를 클릭합니다. 다음 페이지에 Glassfish 노드가 표시되어야 합니다.

왼쪽 창에서 애플리케이션을 클릭합니다. 다음 페이지에 배포된 모든 애플리케이션이 표시되어야 합니다.

결론

이 게시물에서는 Ubuntu 22.04에서 Nginx를 리버스 프록시로 사용하여 Glassfish 서버를 설치하는 방법을 설명했습니다. 이제 Glassfish 서버를 사용하여 Java 애플리케이션 배포를 시작할 수 있습니다. 궁금한 점이 있으면 언제든지 문의해 주세요.