Day19 FTP클라이언트 & 아파치와 톰캣 연동 & curl

Ju Yeong·2023년 10월 12일


get 파일이름 : 파일가져오기

내pc -> 컴퓨터 -> 네트워크 위치추가 -> ftp서버

: ftp클라이언트 없이도 윈도우에서 접근가능

프로그램으로 FTP클라이언트 만들기

- 결과

- 전체 코드

package com.test.ftp;

import java.io.FileInputStream;
import java.io.IOException;
import java.net.SocketException;

import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;

public class MyFtpClient {
    public static void main(String[] args) throws SocketException, IOException {
        String server = "192.168.20.2";
        int port = 21; 
        String id = "jy";
        String pw = ""; //비밀번호 입력해줘야함
        String path = "c:\\Repository\\ftp\\";
        String file = "test.txt";

        FTPClient ftpClient = new FTPClient();
        ftpClient.setControlEncoding("UTF-8");
        ftpClient.connect(server, port);
        int relpyCode = ftpClient.getReplyCode();

        //서버 접속 단계
        if(FTPReply.isPositiveCompletion(relpyCode)) { 
            //아래부터는 서버 접속 성공했을 때 실행하는 명령
            System.out.println("FTP 서버에 연결되었습니다.");
            System.out.println("상태 코드 : " + ftpClient.getReplyCode() + "FTP 서버 접속에 성공하였습니다.");

            //인증 단계
            boolean sucess = ftpClient.login(id, pw);

            if(!sucess) { //로그인 실패 
                System.out.println("상태 코드 : " + ftpClient.getReplyCode() + "로그인이 실패했습니다.");
                System.exit(1);
            } else { //로그인 성공
                System.out.println(ftpClient.getReplyCode() + "로그인이 성공했습니다.");

                ftpClient.setFileType(FTP.BINARY_FILE_TYPE); //전송 파일 타입 : Binary파일
                ftpClient.enterLocalPassiveMode(); //Active Mode --> 공인 IP 연결 //Passive Mode --> 비공인 IP(사설) 연결, 공인도 됨

                FileInputStream fileInputStream = new FileInputStream(path + file);
                if(ftpClient.storeFile(file, fileInputStream)) {
                    // 파일 전송 성공
                    System.out.println("업로드된 파일 명 :" + file);
                } 
            }
        } else {
            //시스템 접속 실패했을 때 실행하는 명령
            System.out.println("상태 코드 : " + ftpClient.getReplyCode() + "서버 연결 실패");
        } 
    }
}

아파치 웹서버와 톰캣 연동

1. mod-jk 설치

  • $sudo apt install libapache2-mod-jk

2. workers.properties 설정

  • $sudo vi /etc/libapache2-mod-jk/workers.properties --> 아래 내용으로 수정
 workers.tomcat_home=/usr/share/tomcat9 --> 톰캣 홈디렉토리 등록  	
 workers.java_home=$JAVA_HOME --> 자바 설치 경로 등록
 worker.list=study worker.study.port=8009 --> AJP가 사용하는 포트 번호
 worker.study.host=localhost
 worker.study.type=ajp13 
 worker.study.lbfactor=1
 worker.loadbalancer.balance_workers=study

3. 아파치 환경설정 파일 수정

  • 000-default.conf, vhost01.conf, vhost02.conf 내의 문서 경로 하단에
    JkMount /* study 를 추가 (/etc/apache2/sites-available에 존재)

4. 톰캣 환경 설정 파일 수정

  • $sudo vi /etc/tomcat9/server.xml --> 아래 내용으로 수정 주석 제거 후 수정
    <Connector protocol="AJP/1.3"
               address="127.0.0.1"
               port="8009"
               secretRequired="false"
               redirectPort="8443" />

5. 서비스 작동 확인

  • $sudo systemctl restart tomcat9
  • $sudo systemctl restart apache2
  • www.vhost01.com 및 www.vhost02.com에서 서블릿과 JSP 프로그램 작동 여부 확인

: https://192.168.20.2 에서 확인함.

curl

profile
주영

0개의 댓글