Forguncy 도움말
홈페이지온라인 스터디문의하기다운로드
V9 버전
V9 버전
  • 시작하기
    • Forguncy | 포건시
    • 시스템 요구사항
      • Version 9.0
    • 포건시 빌더|디자이너
      • 빌더(Builder) 설치
      • 빌더(Builder) 온라인 라이선싱
      • 빌더(Builder) 오프라인 라이선싱
      • 빌더(Builder) 제거
    • 포건시 서버|Server
      • 서버(Server) 설치
      • 서버(Server) 온라인 라이선싱
      • 서버(Server) 오프라인 라이선싱
      • 서버(Server) 제거
  • 데이터베이스
    • 데이터 설정
      • 데이터 테이블 만들기
      • 필드 만들기
      • Excel 파일로 데이터 테이블 만들기
      • 텍스트 파일로 데이터 테이블 만들기
      • Access 파일로 데이터 테이블만들기
      • 뷰 만들기
      • 감사 로그
      • 기본 제공 데이터베이스 동시성 제어
      • 포건시 파일 가져오기
    • 필드 유형
      • 텍스트 필드
      • 정수 필드
      • 소수 필드
      • 날짜 필드
      • 시간 필드
      • 예/아니오 필드
      • 사용자 필드
      • 이미지 필드
      • 첨부 파일 필드
      • 내장 필드
      • 수식 필드
      • 통계 필드
      • 자동 ID 생성
    • 데이터 권한
      • 행 권한
      • 열 권한
      • 데이터 추가/생성 권한 편집
    • 외부 데이터베이스 연결
      • SQL Server에 연결
      • Oracle에 연결
      • MySQL 및 MariaDB에 연결
      • PostgreSQL에 연결
      • Dameng 데이터베이스에 연결
      • 데이터베이스 연결 변경
      • 필드 형식을 다시 가져오기
      • 외부 데이터베이스 사용하기
      • 내장 테이블을 외부 테이블로 변환
      • ODBC를 통해 다른 데이터베이스에 연결
      • 데이터 보안 설정
      • 연결된 테이블의 복사본 만들기
  • 페이지 & 데이터 바인딩
    • 페이지 설정
      • 일반 페이지
      • 일반 페이지 설정
        • 오버플로 모드
      • 모바일 페이지 만들기
      • 모바일 페이지 설정
      • 마스터 페이지 만들기
      • 마스터 페이지 설정
      • 페이지 늘이기 모드
      • 페이지 작업
      • 기본 제공 페이지
        • 로그인 페이지
        • 개인 구성 페이지 수정
        • 비밀번호 분실 및 변경 페이지
        • 이메일 알림 설정 페이지
        • 임시 점검 중 페이지
        • 2단계 인증 스캔 코드 및 인증 페이지
        • 401 권한 없음 페이지
      • 페이지 로드 모드
    • 데이터테이블 및 페이지 연결
      • 바인딩 필드
      • 리스트뷰 바인딩
    • Excel에서 가져오기
    • 인쇄
      • 페이지 설정
      • 인쇄 영역
      • 리스트뷰 인쇄
      • 이미지 목록 인쇄
      • 피벗 테이블을 인쇄
      • 양식 인쇄
      • 반복영역 인쇄
    • 마스터-하위 테이블을 설정
      • 마스터-하위 테이블 만들기
      • 하위 테이블 설정
      • 하위 테이블 업데이트 모드
      • 하위 테이블 삭제 모드
    • OData
      • OData의 기본 사용
      • OData 매개 변수 설정 - 선택
      • OData 매개 변수 설정 - 쿼리
      • OData 매개 변수 설정 - 상위 제한
      • OData 매개 변수 설정 - 정렬
      • 리스트뷰에 OData 적용
      • OData 연산자에 대한 자세한 설명
      • OData를 Excel 함수와 함께 사용
    • 전역변수
    • 데이터 유효성 검사
      • 페이지 측 검사
        • 데이터 유효성 검사
        • 수치 검사
        • 수식 검사
        • 정규식
        • 데이터 유효성 검사 트리거
      • 서비스 측 검사
        • 고유성 검사
        • 필수 유효성 검사
    • 데이터 쿼리 조건
      • 쿼리 명령
      • 리스트뷰 쿼리
    • 키워드
  • 웹 페이지 구성
    • 셀 유형
      • 셀 기본 작업
      • 셀 스타일
      • 버튼
      • 텍스트 상자
      • 여러 줄 텍스트
      • 체크박스
      • 체크박스 그룹
      • 라디오 버튼 그룹
        • 라디오 버튼 데이터 바인딩
        • 라디오 버튼 연동 설정
      • 하이퍼링크
      • 드롭다운/콤보 상자
        • 콤보상자 데이터 바인딩
        • 콤보 상자 연결 설정
      • 숫자 형식
      • 날짜
      • 시간 표시
      • 이미지
      • 이미지 버튼형 업로드 셀
      • 첨부 파일 업로드 버튼형 셀
      • 사용자 목록 선택기
      • 페이지 네비게이션
      • 페이지 탐색
      • 현재 사용자
      • 바코드
      • 페이지 내 컨텐츠가 포함된 셀
      • 페이지 내 탭 방식 셀
      • 자료반복 셀
      • 사용자 정의 컨트롤 컨테이너
      • 프로세스 바
      • 피벗 테이블
    • 리스트뷰 디자인
      • 기본 속성
      • 빠른 스타일
      • 리스트뷰 열 헤더
      • 행 헤더 표시하기
      • 행 선택 기능
      • 요약 행 표시하기
      • 자동 병합
      • 편집 및 선택
      • 데이터 유효성 검사 기간
      • 셀 단위 / 행 단위 선택 단위
      • 선택 설정
      • 열 헤더 작업
      • 포커스 동작
      • 가로 틀 고정
      • 자동 맞춤
      • 초기 로딩 데이터 및 불러올 행 수
      • 데이터로드 설정
      • 즉시 저장 해제
      • 행 헤더 삽입/복제/삭제
      • 두번 클릭 명령
      • 현재 행 변경 명령 편집
      • 애플리케이션 UI
    • Excel 수식
      • 기본 수식 사용
      • 참조 스타일
      • 변수명 수식
      • 배열 수식
      • Excel 함수 목록
    • 조건부 서식
      • 셀 조건부 서식
      • 리스트뷰 조건부 서식
    • 차트
      • 기본 사용
      • 데이터 소스 선택
      • 지도차트
      • 차트 명령
    • 피벗 테이블
      • 피벗 테이블 기본 사용
      • 피벗 테이블 스타일
      • 피벗 테이블 조건부 형식
      • 채우기 모드
      • 고정 및 확장 필드 설정
      • 피벗테이블을 Excel로 내보내기
    • 보고서
      • 보고서 개요
        • RDL 보고서
        • 페이지 보고서
      • 보고서 라이선스
      • 보고서 만들기
      • 보고서 디자이너 및 일반적인 작업
      • 테이블 구성 요소를 사용하여 보고서를 디자인하기
        • 단일 수준 그룹화 및 통계
        • 여러개 그룹화 및 통계
        • 식 그룹화
        • 보고서 정렬
        • 그룹화 필터링 및 정렬
        • 테이블 행 번호
        • 머리글 반복해서 표시
        • 행/열을 고정
        • 테이블 스타일
      • 테이블릭스(모멘트테이블)를 사용하여 보고서를 디자인
        • 모멘트테이블 설계 마법사
        • 다차원 피벗 테이블
      • 보고서 매개 변수 및 데이터 필터링
        • 보고서 매개변수
        • 데이터 필터링
        • 라디오 드롭다운 목록
        • 필터 표시
      • 대화형 보고서
        • 매개변수를 이용한 보고서 이동
        • URL 이동
      • 식
      • 보고 명령
        • 보고서 열기 명령
        • 보고서 내보내기 명령
    • 페이지 디자인
      • 이미지 삽입
      • 배경 이미지 삽입
      • 테마
      • 페이지 스트리밍 레이아웃
    • Excel을 페이지로 가져오기
    • 프로젝트 문서
    • 사용자 컨트롤
      • 사용자 컨트롤 만들기
      • 사용자 정의 컨트롤 컨테이너
      • 사용자 컨트롤 속성
      • 사용자 컨트롤 이벤트
      • 사용자 컨트롤 명령
      • 사용자 컨트롤 가져오기 및 내보내기
    • 이미지 리소스
  • 명령 및 동작
    • 명령
      • 페이지 명령 - 페이지 이동
        • 고급 설정 - 페이지 전송 값
        • 고급설정 - 캐시 제거
        • 고급 설정 - 바인딩된 데이터 설정 로드
      • 페이지 명령 - 팝업 페이지
      • 페이지 명령 - 팝업 페이지 닫기
        • 입력 값을 상위페이지에 반환
        • 전달받을 값 변경 발생 시 상위 페이지의 입력란에 반환
        • 실행한 쿼리 결과를 상위 페이지에 전달
      • 페이지 명령 - 메세지 보여주기
      • 데이터 명령 - 데이터 테이블 작업
        • 고급 설정 - 기타 바인딩되지 않은 필드
        • 고급 설정 - 작업별 레코드
        • 데이터베이스 트랜젝션
        • 기타 고급 설정
      • 데이터 명령 - 리스트뷰 업데이트 명령 만들기
        • 행작동
        • 데이터
        • 선택
        • 셀작동
        • 열 작동
      • 데이터 명령 -쿼리
        • 고급 검색
      • 데이터 명령 - 정렬
      • 데이터 명령 - 데이터 간 이동하기
      • 데이터 명령 - 데이터 삭제
      • Excel 명령 - 테이블을 Excel로 내보내기
      • Excel 명령 - 페이지를 Excel로 내보내기
      • Excel명령 - 파일 다운로드 링크 만들기
      • Excel명령 - Excel 을 리스트뷰로 가져오기
      • 논리 명령 - 조건
        • 조건 형식 - 조건식
        • 조건 형식 - 확인 대화 상자
        • 조건형식 - JavaScript 조건
      • 논리 명령 - 루프 명령
        • 지정된 횟수만큼 반복
        • 리스트뷰로 루프
        • 셀에 따라 루프
      • 논리명령 - 중단명령
      • 논리명령 -중지명령
      • 셀 명령 - 셀 속성과 내용 변경하기
      • 인쇄 명령 - 웹 페이지 인쇄 명령
      • 인쇄 명령 - 페이지 PDF로 내보내기
      • 알림 명령 - 이메일 알림 설정 생성하기
      • 알림 명령 - 메일 보내기 명령
      • 프로그래밍 명령 - JavaScript 명령
      • 리스트뷰의 열 속성 변경하기
      • 재사용 명령
      • 행 및 열 레이아웃 설정 명령
      • 파라미터 설정
      • 저장 프로시저 호출하기
      • 셀유형 작동 명령
    • 서버단 명령
      • 서버단 명령이란?
      • 서버단 명령 만들기
      • 서버단 명령의 파라미터
        • 기본유형
        • 배열 형식
          • 변경된 데이터만 전송
      • 서버단 명령의 반환값
      • 서버단 명령의 권한
      • 서버단 명령의 사용범위
      • 서버단 명령을 관리
      • 서버단 명령을 디버그
      • 서버단 명령을 호출
        • 고급 설정 표시
      • 서버단 명령에서 지원하는 명령
        • 페이지 Excel 내보내기
        • 페이지 PDF로 내보내기
        • 데이터 테이블 작업
          • 데이터 테이블 추가하기
          • 데이터 테이블 편집하기
          • 데이블 테이블 데이터 삭제하기
        • 프로그램 명령 호출
        • CSV 가져오기, 내보내기
          • CSV 가져오기
          • CSV 내보내기
        • 메일 전송 명령 생성하기
        • 조건명령
        • 트랜젝션 생성하기
        • 루프 명령
        • 파라미터 설정
        • 페이지를 HTML로 내보내기
        • 예외처리 명령
        • SQL 실행 명령
        • 저장 프로시저 호출하기
        • 중단명령
        • 서버알림
          • 서버단 알림 생성 및 적용
          • 클라이언트 명령
          • 서버단 명령
        • 서버 가져오기 내보내기 Excel 명령
          • 서버에서 Excel 파일 가져오기
          • 서버단에서 Excel 파일 내보내기
    • 예약 작업
      • 예약된 작업 만들기
      • 예약된 작업에서 지원하는 명령
    • 워크플로우
      • 워크플로우 설정
      • 일반 프로세스
      • 승인 프로세스
    • 로컬 실행 및 디버깅
      • 앱 실행
      • 앱 디버깅
        • 페이지 새로고침 시 수정 결과 표시
        • 모바일 디버깅
        • 숨겨진 정보 표시
        • 모든 참조 찾기
    • 자바 스크립트 프로그래밍
      • CSS 사용하기
      • JavaScript 사용
        • 응용 프로그램 수준 JavaScirpt 파일 등록
        • 지정된 페이지의 JavaScript 파일 등록
        • 사용자 정의 JavaScript 지정
      • 작업 페이지
      • 작업 셀
      • 작업 리스트뷰
      • JavaScript 및 CSS 코드 디버그
      • JavaScript API 인덱스
        • Forguncy 인터페이스
          • CellLocationinfo 인터페이스
          • CellRange 인터페이스
          • CurrentRowInfoParam 인터페이스
          • FormulaCalcContext 인터페이스
          • GetTableDataByConditionParams 인터페이스
          • IMergedColumnInfo 인터페이스
          • ListviewPaginationInfo 인터페이스
          • ListViewValueChangedEventArg 인터페이스
          • ModifyData 인터페이스
          • OrganizationLevelValueInfo 인터페이스
          • PageingInfoChangedEventArg 인터페이스
          • RowData 인터페이스
          • TableDataQueryPolicy 인터페이스
          • UserExtendProperties 인터페이스
          • UserInfo 인터페이스
        • Forguncy 매서드
          • addTableData 메서드
          • addUserToRole 메서드
          • addUser 메서드
          • ConvertDateToOADate 메서드
          • ConvertOADateToDate 메서드
          • ConvertToCssColor 메서드
          • deleteTableData 메서드
          • deleteUserFromRole 메서드
          • deleteUser메서드
          • forceSyncTableData 메서드
          • getTableDataByCondition 메서드
          • getTableDataByOData 메서드
          • getTableData 메서드
          • logIn 메서드
          • logOut 메서드
          • modifyTablesData 메서드
          • SendMail 메서드
          • updateTableData 메서드
        • Forguncy 열거형
          • ListviewColumnType 열거형
          • QueryNullPolicy 열거형
        • Forguncy 클래스
          • CellEvents클래스
            • Click 이벤트
            • MouseEnter 이벤트
            • MouseLeave 이벤트
            • PivottableClick 이벤트
            • SelectionChanged 이벤트
            • ValueChanged 이벤트
          • Cell 클래스
            • bind 메서드
            • disable 메서드
            • enable 메서드
            • getActiveTabIndex 메서드
            • getContentPage 메서드
            • getTabCount 메서드
            • getTabPage 메서드
            • getValue 메서드
            • hasFocus 메서드
            • hide 메서드
            • show 메서드
            • setBackColor 메서드
            • setFocus 메서드
            • setForeColor 메서드
            • setValue 메서드
            • showTab 메서드
            • unbind 메서드
            • unbindAll 메서드
            • setReadOnly 메서드
          • CommandHelper 클래스
            • executeCellCommand 메서드
            • getAllVariableValues 메서드
            • getVariableValue 메서드
            • setVariableValue 메서드
          • ForguncyCommandHelper클래스
            • executeCellCommand 메서드
            • getAllVariableValues 메서드
            • getVariableValue 메서드
            • setVariableValue 메서드
          • ListViewEvents 클래스
            • PageingInfoChanged 이벤트
            • Reloaded 이벤트
            • SelectedRowsChanged 이벤트
            • SelectionChanged 이벤트
            • ValueChanged 이벤트
          • ForguncyHelper 클래스
            • getCellLocation 메서드
            • post 메서드
            • SpecialPath 속성
          • ListView 클래스
            • addNewRow 메서드
            • addSelectedRow 메서드
            • bind 메서드
            • clearAllSelectedRows 메서드
            • clearSelectedRowByQuery 메서드
            • clearSelectedRow 메서드
            • deleteRow 메서드
            • getDataTableName 메서드
            • getDesignerRangeInfo 메서드
            • getMergedColumnInfos 메서드
            • getName 메서드
            • getPaginationInfo 메서드
            • getQuery 메서드
            • getRowCount 메서드
            • getSelectedRowIndexs 메서드
            • getSelectedRowIndex 메서드
            • getSelectedRowsData 메서드
            • getText 메서드
            • getValue 메서드
            • goToFirstPage 메서드
            • goToLastPage 메서드
            • goToNextPage 메서드
            • goToPreviousPage 메서드
            • goToSpecifiedPage 메서드
            • usePaginationDisplay 메서드
            • hiddenLoadingIndicator 메서드
            • showLoadingIndicator 메서드
            • isSelectedRow 메서드
            • reload 메서드
            • selectAllRows 메서드
            • selectRow 메서드
            • setText 메서드
            • setValue 메서드
            • unbind 메서드
            • unbindAll 메서드
            • hideColumns 메서드
            • showColumns 메서드
            • clearAllColumnFilters 메서드
            • getRunTimePageName 메서드
          • PageEvents 클래스
            • Loaded 이벤트
            • PageDefaultDataLoaded 이벤트
            • PopupClosed 이벤트
          • Page 클래스
            • AutoDisconnectTimeout 메서드
            • bind 메서드
            • getCellArray 메서드
            • getCellByLocation 메서드
            • getCell 메서드
            • getContainerCells 메서드
            • getListViews 메서드
            • getListView 메서드
            • getMasterPageName 메서드
            • getPageName 메서드
            • getSubPageInfoByPageID 메서드
            • getUserInfo 메서드
            • getUserName 메서드
            • ready 메서드
            • recalc 메서드
            • reloadBindingData 메서드
            • resumeCalc 메서드
            • setCurrentRow 메서드
            • suspendCalc 메서드
            • unbindAll 메서드
            • unbind 메서드
          • PivotTableCellType 클래스
            • setCustomFunction 메서드
          • PivotTableEventParameter 클래스
          • PivotTableHeaderInfo 클래스
          • SpecialPath 클래스
            • getBaseUrl 메소드
            • getBuiltInImageFolderPath 메서드
            • getImageEditorUploadImageFolderPath 메소드
            • getPluginRootPath 메서드
            • getUploadFileFolderPathInDesigner 메서드
            • getUploadImageFolderPathInServer 메소드
            • getUserFileFolderPath 메서드
          • SubPage 클래스
            • getCellArray 메서드
            • getCell 메서드
            • getContainerCells 메서드
            • getListViews 메서드
            • getListView 메서드
            • getMasterPageName 메서드
            • getPageName 메서드
          • Page 변수
  • 배포 및 권한
    • 권한 및 보안
      • 인증 모드
      • Single Sign-On
      • 빌더 측에서 권한 설정
        • 데이터 권한
          • 행 권한
          • 열 권한
          • 데이터 추가/생성 권한 편집
        • 페이지 권한
        • 셀 권한
    • 서버 측 설정 권한
      • 데이터 권한
      • 역할 권한
      • 리소스 권한
    • 웹 사이트에 배포
      • 웹사이트 배포
      • 오프라인 배포
      • Https 배포
      • 웹사이트 아이콘 설정
  • 포건시 서버 | Server
    • 사용자, 역할 및 조직 구조 설정
      • 서버 관리자 개발과 서버 관리자
      • 사용자 생성
      • 역할 만들기
      • 조직 구조 만들기
      • 사용자 정보 보기
      • Excel 가져오기 및 내보내기
      • 암호 정책
    • 사용자 보안 공급자
      • Windows Active Directory
      • 보안 공급자를 구현하는 방법
    • 서버단 응용 프로그램 관리
      • 기본작업
      • 기본 응용 프로그램 설정
      • 도메인 이름 설정
      • 외부 데이터베이스 연결 문자열 구성
      • 예약된 작업
    • 서버 단 구성
      • 메일 서버 구성
      • Windows 도메인 사용자 동기화
      • Https 인증서
      • 저장소 경로 설정
      • 보안 설정
      • 로그인 암호 변경
      • 서버 실행 계정 변경
      • 사용자 정보 데이터베이스 구성
      • 외부서비스 인증
      • 계정 2단계 인증 설정
      • 동시 사용자 제어
      • 로그
      • 클라우드 스토리지
        • OneDrive 구성
    • 백업 및 복원
      • 서버 측 자동 백업 및 복원
      • 서버 측 수동 백업 및 복원
      • 디자이너 백업 및 복원
    • 웹사이트 유지보수
      • 일시 중지 및 활성화
      • 데이터 병합 및 마이그레이션
      • 서비스 재시작
      • 서버단 문제 해결
      • 명령 백업
      • 데이터 및 권한 동기화
    • 서버 부하 분산 모드 설정 (로드밸런싱)
      • 서버부하분산 모드 설정
      • Linux 서버에 Nginx 설치
      • Linux 서버에 Redis 설치 및 구성
      • NFS를 통해 NAS 폴더를 Linux에 마운트
      • SMB를 통해 Windows에서 NAS 폴더에 액세스
      • SeaweedFS 설치 및 배포
  • 공동작업
    • 공동작업
      • 공동작업에 대한 개념
      • 기능 소개
      • 프로젝트 생성 및 열기
      • 협업개발을 수행하는 방법
        • 체크아웃
        • 전체 모듈 보기
        • 체크인 및 실행 취소
        • 이력보기
        • 최신 버전을 가져오기
      • 권장사항 사용
  • 플러그인
    • 플러그인 설치하기
      • 플러그인 일괄 설치
    • 플러그인 사용하기
      • 셀유형 플러그인
        • 이미지 편집기(CaroselCellType)
        • 엘리먼트 UI (Element UI)
          • 입력상자
          • 숫자표시상자
          • 항목선택기
          • 날짜 선택기
          • 시간 선택기
          • 달력
          • 아바타
          • 파일업로드
          • 태그
          • 별점
          • 슬라이더
          • 게시판 형태 페이지
          • 네비게이션 메뉴
          • 탭헤더
          • 브레드크럼
          • 진행률
          • 단계
          • 타임라인
          • 전송
          • 맨위로 돌아가기
          • 표
          • TreeSelect
        • 포커스설정 (Vant)
          • 입력
          • 숫자
          • 스탭퍼
          • 선택기
          • Cascader
          • 날짜/시간 선택기
          • 달력
          • 업로드
          • 태그
          • 비율
          • 슬라이더
          • 스와이퍼
          • Notice Bar
          • 페이지 매김
          • 텝 헤더
          • 그리드
          • 진행률
          • 원 진행률
          • 단계
          • 타임라인
        • 사용자 메뉴 설정 (Forguncy.CustomMenu)
          • 메뉴
          • 트리 메뉴
        • 페이지 탭 컨트롤 (TabManager)
        • HTML 편집기 (HtmlRichEditor)
        • ListView 선택 항목 표시기(SelectionPanel)
        • 간트차트 (Gantt)
        • FilePreviewer
        • 서명 (SignatureCellType)
        • 비디오, 음원 파일 플레이어 (VideoPlayCellType)
      • 명령유형 플러그인
        • JSON 데이터소스 가져오기(JSONDataSource)
        • JSON 직렬화/역직렬화 명령 (JSonUtilityCommand)
          • JSON 직렬화
          • JSON 역직렬화
        • 이미지뷰어 명령(ImageViewerCommand)
        • 로딩 표시 시작 (LoadingCommand)
        • 셀 위치 설정 명령 (SetCellLocationCommand)
        • 현재 행 설정 변경 (SetCurrentRowCommand)
        • 리스트뷰로 데이터 전달(PassListviewDataCommand)
        • 리스트뷰 새로고침 명령 (ReloadListViewComand)
        • CSV 가져오기와 내보내기(ImportExportCSV)
          • CSV 가져오기
          • CSV 내보내기
        • 워크플로우 명령 (WorkflowCommand)
        • 사용자 관리 기능 (UserManagementCommand)
        • Post 데이터 명령(SendHTTPRequestCommand)
        • 포커스 설정 명령 (SetFocusCommand)
        • 서버 파일 관리 (Operate Filescommand)
        • 암호화 및 복호화 알고리즘(EncryptDecryptCommand)
        • MS 팀즈에 메세지 전송 (TeamsWebHookCommand)
        • 대기명령 (SleepCommand)
        • 운영체제 정보 확인 (DetectOSInfoCommand)
        • 추적 프로세스 상태
        • WebSocket클라이언트 명령
        • 스마트폰 QR코드 스캔 명령
        • Office 365 로그인(Office365LoginCommand)
          • Office365 통합인증
            • 새로운 생성자 사용
            • 기존 사용자 정보 연동
          • 사용자 생성 (Office 365 계정으로 로그인)
    • 플러그인 개발하기
      • 포건시 플러그인 예제- 자료형 소개
      • 포건시 플러그인 예제 - LayDate
Powered by GitBook
On this page
  1. 포건시 서버 | Server
  2. 서버 부하 분산 모드 설정 (로드밸런싱)

Linux 서버에 Nginx 설치

Previous서버부하분산 모드 설정NextLinux 서버에 Redis 설치 및 구성

Last updated 1 year ago

이 섹션에서는 Linux 서버에 Nginx를 설치하는 단계를 설명합니다.

Debian 기반(운영 체제는 Ubuntu)

sudo 권한이 있는 루트가 아닌 일반 사용자를 준비하고 이 사용자를 사용하여 Linux 서버에 로그인한 후 다음 단계를 수행하십시오.

단계

Nginx를 설치합니다.

Nginx는 Ubuntu의 기본 리포지토리에서 사용할 수 있으므로 apt 패키징 시스템을 사용하여 이러한 리포지토리에서 Nginx를 설치할 수 있습니다.

최신 패키지 목록에 액세스할 수 있도록 다음 명령을 실행하여 로컬 패키지 인덱스를 업데이트합니다.

sudo 적절한 업데이트

다음 명령을 실행하여 nginx를 설치합니다. sudo apt install nginx

이 두 명령을 실행한 후 apt는 Nginx와 필요한 모든 종속성을 서버에 설치합니다.

방화벽을 조정하십시오.

Nginx를 테스트하기 전에 서비스에 대한 액세스를 허용하도록 방화벽을 조정해야 합니다. Nginx는 설치 중에 자신을 ufw 서비스로 등록하여 Nginx에 직접 액세스할 수 있습니다.

다음 명령을 실행하여 ufw가 사용할 수 있는 애플리케이션 구성을 나열합니다.

sudo ufw app list

명령을 실행하면 다음 화면과 유사한 애플리케이션 구성 파일 목록이 표시됩니다.

출력사용 가능한 애플리케이션: Nginx Full Nginx HTTP Nginx HTTPS OpenSSH

보시다시피 Nginx에는 사용 가능한 세 가지 구성 파일이 있습니다.

  • Nginx Full : 이 프로필은 포트 80(일반, 암호화되지 않은 웹 트래픽)과 포트 443(TLS/SSL 암호화된 트래픽)을 모두 엽니다.

  • Nginx HTTP : 이 프로필은 포트 80(암호화되지 않은 일반 웹 트래픽)만 엽니다.

  • Nginx HTTPS : 이 구성 파일은 포트 443(TLS/SSL 암호화 트래픽)만 엽니다.

구성한 트래픽을 계속 허용하는 가장 제한적인 프로필을 활성화하는 것이 좋습니다. 여기에서는 포트 80의 트래픽만 허용하면 됩니다.

Nginx 설치가 완료되면 Ubuntu가 Nginx를 시작하고 웹 서버가 실행됩니다.

다음 명령을 실행하여 systemd init 시스템에서 서비스가 실행 중인지 확인합니다.

systemctl status nginx

출력은 다음과 유사하며 서비스가 정상적으로 실행되고 있음을 나타냅니다.

Output● 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 Fri 2018-04-20 16:08:19 UTC; 3 days ago
     Docs: man:nginx(8)
 Main PID: 2369 (nginx)
    Tasks: 2 (limit: 1153)
   CGroup: /system.slice/nginx.service
           ├─2369 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
           └─2380 nginx: worker process

서비스가 정상적으로 실행되고 있는지 확인하는 또 다른 방법인 Nginx에서 페이지를 요청하는 방법을 사용할 수도 있습니다.

서버의 IP 주소로 이동하여 기본 Nginx 로그인 페이지를 방문하여 서비스가 제대로 작동하는지 확인할 수 있습니다.

서버의 IP 주소를 모르는 경우 다음 명령을 실행하십시오.

ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

반환된 정보를 얻은 후 브라우저에서 하나씩 시도하여 액세스할 수 있는지 확인할 수 있습니다.

또는 다음 명령을 실행하여 퍼블릭 IP 주소를 가져옵니다.

curl -4 icanhazip.com

서버의 IP 주소를 얻은 후 브라우저의 주소에 http:// server IP 를 입력하면 다음과 같은 화면이 나오며 서비스가 정상적으로 실행되고 있음을 확인할 수 있습니다.

웹 서비스 중지

sudo systemctl stop nginx

웹 서비스 중지 후 서비스 시작

sudo systemctl start nginx

웹 서비스를 다시 시작하십시오.

sudo systemctl restart nginx

구성 변경 후 Nginx 연결 해제 없이 다시 로드

sudo systemctl reload nginx

기본적으로 Nginx는 서버가 시작될 때 자동으로 시작되도록 구성되어 있습니다. 이 동작은 다음을 실행하여 비활성화할 수 있습니다.

sudo systemctl disable nginx

부팅 시 시작되도록 서비스를 다시 활성화합니다.

sudo systemctl enable nginx

Nginx에는 기본적으로 "/var/www/html" 디렉토리의 문서를 제공하도록 구성된 서버 블록이 활성화되어 있습니다.

① 다음 명령을 실행하여 example.com에 대한 디렉토리를 생성하고 -p 플래그를 사용하여 필요한 모든 상위 디렉토리를 생성합니다.

sudo mkdir -p /var/www/example.com/html

② $USER 환경 변수를 사용하여 다음 명령을 실행하여 디렉터리 소유권을 할당합니다 .

sudo chown -R $USER:$USER /var/www/example.com/html

③ umask 값을 수정하지 않았다면 네트워크 루트 디렉토리의 권한이 정확해야 합니다. 다음 명령을 실행하여 권한이 올바른지 확인할 수 있습니다.

sudo chmod -R 755 /var/www/example.com

④ 다음 명령을 실행하여 nano를 사용하여 샘플 "index.html" 페이지를 생성합니다.

nano /var/www/example.com/html/index.html

그리고 "index.html"에 다음 내용을 추가하고 저장하고 닫습니다.

<html>
    <head>
        <title>Welcome to Example.com!</title>
    </head>
    <body>
        <h1>Success!  The example.com server block is working!</h1>
    </body>
</html>

⑤ 다음 명령어를 실행하여 새로운 서버 블록을 생성합니다.

sudo vi /etc/nginx/sites-available/example.com

다음 내용을 "example.com"에 붙여넣고 루트의 디렉터리 및 도메인 이름을 업데이트합니다.

server {
        listen 80;
        listen [::]:80;
 
        root /var/www/example.com/html;
        index index.html index.htm index.nginx-debian.html;
 
        server_name example.com www.example.com;
 
        location / {
                try_files $uri $uri/ =404;
        }
}

⑥ 다음 명령을 실행하여 시작 시 Nginx에서 읽은 사이트 활성화 디렉토리에 대한 링크를 생성하여 파일을 활성화합니다.

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

두 개의 서버 블록이 이제 사용 가능하며 listen 및 server_name 지시문을 기반으로 요청에 응답하도록 구성됩니다.

  • example.com: example.com 및 www.example.com에 대한 요청에 응답합니다.

  • 기본: 다른 두 모듈과 일치하지 않는 포트 80의 모든 요청에 ​​응답합니다.

⑦다른 서버 이름을 추가하여 발생할 수 있는 해시 버킷 메모리 문제를 방지하려면 "/etc/nginx/nginx.conf" 파일에서 값을 조정해야 합니다.

다음 명령을 실행하여 파일을 엽니다.

sudo vi /etc/nginx/nginx.conf

"server_names_hash_bucket_size" 지시문을 찾아 "#" 기호를 삭제하여 줄의 주석 처리를 제거하고 저장한 후 닫습니다.

...
http {
    ...
    server_names_hash_bucket_size 64;
    ...
}
...

⑧ 다음 명령을 실행하여 Nginx 파일에 구문 오류가 없는지 확인합니다.

sudo nginx -t

이제 Nginx가 도메인 이름을 제공합니다. http://example.com으로 이동하여 이를 테스트 할 수 있으며 다음과 같이 표시됩니다.

콘텐츠

  • /var/www/html: 실제 웹 콘텐츠(기본적으로 이전에 본 기본 Nginx 페이지로만 구성됨)는 /var/www/html 디렉토리에서 제공됩니다. Nginx 구성 파일을 변경하여 변경할 수 있습니다.

서버 구성

  • /etc/nginxNginx 구성 디렉토리. 모든 Nginx 구성 파일은 여기에 있습니다.

  • /etc/nginx/nginx.conf: 기본 Nginx 구성 파일입니다. Nginx 전역 구성을 변경하도록 수정할 수 있습니다.

  • /etc/nginx/sites-available/: 각 사이트 서버 블록을 저장할 수 있는 디렉토리입니다. Nginx는 사이트 활성화 디렉토리에 연결되지 않은 경우 이 디렉토리에 있는 구성 파일을 사용하지 않습니다. 일반적으로 모든 서버 블록 구성은 이 디렉토리에서 수행된 다음 다른 디렉토리에 연결하여 활성화됩니다.

  • /etc/nginx/sites-enabled/: 활성화된 각 사이트 서버 블록이 저장되는 디렉토리입니다. 일반적으로 이러한 파일은 사이트 사용 가능 디렉터리에서 찾을 수 있는 구성 파일에 연결하여 생성됩니다.

  • /etc/nginx/snippets: 이 디렉토리에는 Nginx 구성의 다른 위치에 포함될 수 있는 구성 스니펫이 포함되어 있습니다.

서버 로그

  • /var/log/nginx/access.log: Nginx가 다르게 구성되지 않는 한 웹 서버에 대한 모든 요청이 이 로그 파일에 기록됩니다.

  • /var/log/nginx/error.log: 모든 Nginx 오류가 이 로그에 기록됩니다.

RPM 기준 (운영체제는 CentOS, RedHat 7.6, 낙찰 기린)

단계

sudo yum -y update

Nginx는 CentOS 패키지와 함께 제공되는 표준 리포지토리에서 사용할 수 없으므로 서버에 EPEL 리포지토리를 설치해야 합니다. EPEL은 무료로 사용할 수 있으며 Yum과 함께 설치할 수 있는 많은 오픈 소스 패키지를 제공합니다.

EPEL을 설치하려면 Yum 패키지 관리자를 사용하여 다음 명령을 실행합니다.

sudo yum install -y epel-release

sudo yum –y install nginx

sudo systemctl start nginx

다음 명령을 실행하여 상태를 확인하십시오.

sudo systemctl status nginx

녹색 텍스트는 " active(running) "이어야 합니다. 표시되지 않으면 Nginx 인스턴스가 성공적으로 시작되지 않았을 수 있습니다.

참고: 이미 Apache 서버를 실행 중인 경우 Nginx를 시작하기 전에 비활성화해야 합니다. sudo service httpd stop 명령을 사용하십시오 . Apache를 비활성화하면 현재 호스팅되는 모든 웹사이트가 종료됩니다.

Apache가 비활성화된 경우에도 서버 재부팅 중에 자동으로 시작될 수 있습니다. 다음 명령을 실행하여 자동 시작을 비활성화합니다.

sudo systemctl disable httpd

sudo systemctl enable nginx

CentOS 7에는 기본적으로 방화벽이 활성화되어 있으며 포트 80 및 443에 대한 액세스를 차단합니다. Nginx의 모든 인바운드 HTTPS 및 HTTP 패킷을 차단합니다.

HTTP 및 HTTPS 통신을 허용하려면 다음 명령을 실행하십시오.

firewall-cmd --zone=public --permanent --add-service=http firewall-cmd --zone=public --permanent --add-service=https firewall-cmd --reload

각 명령 다음에 "success"가 표시되어 명령이 올바르게 실행되었음을 나타냅니다.

Nginx가 제대로 실행되고 있는지 확인하는 가장 쉬운 방법은 서버의 공용 IP 주소를 방문하는 것입니다. 웹 브라우저를 열고 " http:// 서버 IP 또는 도메인 이름 " 을 방문하십시오.

다음 명령을 실행하여 서버의 공용 IP 주소를 찾으십시오.

브라우저에서 액세스하면 아래와 같이 Nginx 시작 인터페이스가 표시됩니다.

다음 명령을 실행하여 SElinux가 활성화되었는지 확인하십시오.

getenforce

Enforcing이 출력되면 SELinux가 활성화되어 있고 Nginx가 http 요청을 보낼 수 있는 권한을 활성화해야 함을 의미합니다. 다음 명령을 실행합니다.

sudo setsebool -P httpd_can_network_connect 1

" 테스트 실패" 오류를 수정하는 방법

nginx.conf 파일 에 대해 " 테스트 실패 " 오류 메시지가 표시되면 IP 주소 문제일 수 있습니다.

기본적으로 Nginx 서비스는 IPv4와 IPv6 모두에서 수신 대기합니다. 서버가 IPv6를 지원하지 않으면 테스트에 실패합니다. 이는 기본 구성 파일을 수정하여 수정할 수 있습니다.

기본 구성 파일 "/etc/nginx/nginx.conf"를 열고 다음 줄을 찾아 주석 처리한 다음 앞에 "#"을 추가합니다.

# listen [::]:80 default_server;

파일을 저장하고 닫은 후 다음 명령을 실행하여 Nginx 서비스를 다시 시작합니다.

sudo systemctl reload nginx

서비스를 재시작한 후 브라우저에서 서버 IP 주소에 접속하면 Nginx 페이지가 표시되어야 합니다.

Nginx 구성 파일 및 루트 디렉토리

Nginx 구성 파일의 위치와 기본 Nginx 서버 루트 디렉터리를 알아야 합니다.

추가 서버 블록

Apache에서 관리자는 가상 호스트를 사용하여 여러 웹 사이트를 실행합니다. Nginx를 사용하면 서버 블록을 사용하여 단일 서버에서 여러 웹 사이트를 실행할 수 있습니다.

확장자가 .conf인 새 구성 파일을 만들어 추가 서버 블록을 추가합니다. 이 파일을 "/etc/nginx/conf.d"에 넣으면 Nginx가 시작될 때마다 로드됩니다.

기본 Nginx 서버 루트 디렉터리

기본 Nginx 서버 루트 디렉토리는 "/usr/share/nginx"입니다. 이는 "/etc/nginx/conf.d/default.conf"에 있는 기본 서버 블록 구성 파일에 지정됩니다.

웹 파일을 포함하는 기본 서버 문서 루트 디렉토리는 "usr/share/nginx/html"입니다.

글로벌 구성

전역 구성은 "/etc/nginx/nginx.conf"에서 기본 Nginx 구성 파일을 수정하여 조정할 수 있습니다. 기본적으로 다음 세 가지를 인식할 수 있습니다.

    • 이벤트는 Nginx가 일반적으로 연결을 처리하는 방법을 정의하는 전역 설정입니다.

    • HTTP는 서버가 HTTP 및 HTTPS 연결을 처리하는 방법을 정의합니다.

    • 서버는 HTTP 컨텍스트에서 정의됩니다. 서버 포트, 문서 루트 등을 지정합니다.

Nginx 관리

nginx 중지

sudo systemctl stop nginx

Nginx 서비스를 다시 시작하십시오.

sudo systemctl restart nginx

nginx를 새로 고침

sudo systemctl reload nginx

서버 시작 시 Nginx 자동 시작 비활성화

sudo systemctl disable nginx

새 디렉토리 구성

여러 웹사이트를 호스팅하는 경우 표준 명명 규칙을 따르는 것이 가장 좋습니다. cPanel의 표준 이름 지정 및 디렉터리 생성을 사용합니다.

sudo mkdir -p /var/www/yourdomain.com/public_html

그런 다음 구성을 테스트하는 데 도움이 되는 인덱스 페이지를 만듭니다.

sudo nano /var/www/yourdomain.com/public_html/index.html

테스트를 위해 index.html에 텍스트 줄을 입력하고 파일을 저장한 후 닫습니다.

데이터에 온라인으로 액세스할 수 있도록 다음 명령을 실행하여 Linux 파일 권한을 변경하십시오.

sudo chmod 755 /var/www/yourdomain.com/public_html

그런 다음 index.html 페이지를 온라인으로 열 수 있습니다.

웹 서버를 확인하십시오.

Nginx 프로세스를 관리합니다. 다음 명령을 사용하여 Nginx 프로세스를 관리합니다.

서버 블록을 설정합니다(권장).

Nginx 웹 서버를 사용할 때 서버 블록을 사용하여 구성 세부 정보를 캡슐화하고 단일 서버에서 여러 도메인을 호스트할 수 있습니다. 이라는 도메인 이름을 만들려면 고유한 도메인 이름을 만들 수 있습니다.

중요한 Nginx 파일 및 디렉토리에 익숙해지십시오.

리포지토리 패키지 목록을 업데이트합니다. 다음 명령을 실행합니다.

EPEL(Enterprise Linux용 추가 패키지)을 설치합니다.

Nginx를 설치합니다.

단계NET에서 Nginx 저장소가 서버에 추가되었습니다. 이제 다음 yum 명령을 실행하여 Nginx를 설치할 수 있습니다.

Nginx 서비스를 시작합니다. Nginx를 설치한 후 자동으로 시작되지 않으므로 Nginx 서비스를 시작하려면 다음 명령을 실행해야 합니다.

서버가 시작될 때 Nginx가 자동으로 시작되도록 구성합니다. 다음 명령을 실행합니다.

트래픽을 허용하도록 방화벽을 구성합니다.

Nginx 설치를 확인합니다.

SELinux를 구성합니다.

예를 들어 example.com