반응형

Development 49

HTTPS에서 경고 없이 HTTP 리소스를 호출하는 방법

인증서가 있는 사이트에서 인증서가 없는 사이트를 호출할 때 mixed content 오류가 발생합니다. 우선 인증서가 있는 사이트에서 인증서가 없는 사이트를 호출하는 것은 문제가 될 수 있으므로, 인증서를 사용하는 것이 가장 좋은 방법입니다. 그러나 내부에서만 사용하는 사이트이거나 인증서를 구매할 수 없는 환경이라면 아래와 같은 방법으로 해결할 수 있습니다. 기본적인 Nginx 설정 방법에 대한 지식이 없어도 아래 설정을 따라만 해도 가능합니다. Nginx로 proxy_pass 설정하기 인증서가 있는 사이트라면, 해당 인증서를 사용해서 Nginx 설정을 하여 우회할 수 있습니다. Nginx가 중개자 역할이 되어 보안 연결을 호출한 것처럼 위장할 수 있습니다. Nginx 설정 server { # liste..

나의 서버에 GitLab 설치하기 (Git, GitLab 설치 및 명령어)

권장사양 CPU : 4코어 이상 권장 메모리 : 4GB 이상 권장 (실행만 해도 3.5GB 정도 사용함, 사용자가 많을수록 많이 필요) 스토리지 : 데이터를 저장하기에 충분한 용량 필요 데이터베이스 : GitLab에 내장되어 있는 PostgreSQL을 기본적으로 사용하지만, 따로 데이터베이스를 사용하기 위해서 별도의 설정이 필요 (이 부분은 다루지 않습니다.) 나의 사양 운영체제 : CentOS 7 CPU : 4코어 grep 'cpu cores' /proc/cpuinfo | uniq 메모리 : 4GB free -h 디스크 : 459GB df -h Git 설치 시스템 업데이트 CentOS를 최신 상태로 업데이트한다. # CentOS 패키지 관리 도구를 최신상태로 업데이트 sudo yum up..

Development/Git 2023.12.04

CentOS 7 에서 git version 2.x 이상 설치하기

CentOS 7이 아니더라도 버전이 낮으면 sudo yum install git을 하더라도 git version 2.x 이상이 설치되지 않습니다. 저도 버전 1.8이 설치되어서 삭제 후 다시 설치했습니다. 기존에 설치된 git 제거 sudo yum remove git 의존성 설치 CentOS를 최신 상태로 업데이트한다. # CentOS 패키지 관리 도구를 최신상태로 업데이트 sudo yum update # 각종 코드를 컴파일하고 빌드하는 데 필요 sudo yum groupinstall "Development Tools" #Git을 빌드하는 데 필요한 추가 의존성 설치, 지금 설치해야 빌드 및 설치 과정에서 오류가 발생하지 않음. sudo yum install gettext-devel openssl-dev..

Development/Git 2023.11.29

Nginx 환경 설정으로 원하는 자원(CSS,JS,이미지)만 캐싱하기

Nginx 설정 (수정 전) server { listen 80; location / { auth_request /auth; proxy_pass https://front_new; } #인증 location = /auth { ... } } 문제점 Nginx 환경 설정으로 자원(CSS,JS,이미지)만 캐싱한 이유 Angular 프로젝트의 웹서버로 Nginx를 사용하고 있습니다. 메인 화면에서 로그인이 되지 않은 상태면 로그인 url로 넘기고 있는데, 문제는 이 과정에서 Nginx에서 설정한 auth_request가 호출되지 않고 브라우저 캐시로 인해 redirect 되고 있습니다. 예를 들어 'example.com/' 을 호출하면 'example.com/login' 으로 redir..

메모리가 부족한 AWS Lightsail에서는 스왑 공간을 활용하자

AWS Lightsail을 사용중이라면 보통 개발용서버 또는 간단한 용도일텐데, 조금만 무거운 작업을 실행하면 메모리 부족 현상을 만나게 됩니다. (저는 React 빌드를 하려고 하는데 메모리 부족 현상을 만났습니다.) 이를 해결하기 위해서 swap space를 활용해 디스크의 일부를 가상 메모리로 사용하여 물리적인 메모리 공간이 부족할 때 시스템이 사용할 수 있는 추가적인 메모리로 활용했습니다. swap space swapfile 생성 sudo fallocate -l 2G /mnt/swapfile 경로는 원하는 경로로 지정하면 됩니다. swapfile 권한 설정 sudo chmod 600 /mnt/swapfile swap space 설정 sudo mkswap /mnt/swapfile swap 활성화 s..

AWS Lightsail에서 파이썬 여러 버전 관리 및 사용 :: pyenv

pyenv 여러 버전의 Python을 사용하기 위해서 pyenv를 사용했습니다. AWS Lightsail에서는 pyenv를 설치하기 위해서 사전에 설치해야 할 패키지가 있습니다. 먼저 설치해야 할 패키지 sudo yum install @development zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl11 openssl11-devel xz xz-devel libffi-devel findutils tk-devel -y 각 패키지가 필요한 이유 @development 이 패키지 그룹은 일반적인 개발 도구 및 라이브러리(예: gcc, make 등)를 포함하고 있습니다. Python을 소스에서 빌드하려면 이러한 도구가 필요합니다...

AWS Lightsail에서 React 빌드&배포 시 멈추는 현상 (메모리 부족)

원인 AWS Lightsail에서 테스트 삼아 React를 빌드하려고 했는데 빌드가 완료되지 않고 계속 멈추는 현상이 발생했다. 내 인스턴스의 RAM은 512MB인데, React는 빌드 시 규모가 조금만 커져도 메모리 부족으로 빌드가 멈춰버리는 현상이 생기는 것이다. 아마 Lightsail 뿐만 아니라, 다른 서버도 RAM 용량이 부족하면 같은 현상을 겪을 것이다. 해결 방법 스왑메모리 설정 부족한 RAM 용량을 DISK의 용량으로 대체하는 방법이다. 당연히 DISK를 사용하는 것이기 때문에 성능면에서는 현저하게 떨어지지만 메모리 부족으로 인해 빌드가 중단되는 현상은 해결할 수 있다. 운영용으로는 부적합하지만 테스트 할 때에는 사용하기 좋다. $ sudo dd if=/dev/zero of=/mnt/swa..

Amazon Linux 서버에서 Selenium 사용하기

AWS Amazon Linux 2 환경에서 google-chrome-stable 패키지로 설치하려 했으나, “gpg-key” 관련 오류가 지속적으로 발생하고, 이를 무시하려고 해도 “Segmentation Fault” 오류가 발생 해당 오류를 해결하려고 많은 시간이 소요되어 기록함. 서버 환경 NAME="Amazon Linux" VERSION="2" ID="amzn" ID_LIKE="centos rhel fedora" VERSION_ID="2" PRETTY_NAME="Amazon Linux 2" ANSI_COLOR="0;33" CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2" HOME_URL="https://amazonlinux.com/"명령어 $ cat os-release 로..

Nginx :: 이중화 과정에서 발생한 오류들 정리

Nginx 이중화 하면서 발생한 오류들 정리 Address already in use 사용하려는 포트가 이미 사용중인 경우 사용중인 포트 확인하기 (만약 사용중인 포트가 꼭 필요한 포트라면 다른 포트로 우회해도 됨) $ netstat -lntp 중지시켜도 상관이 없다면 프로세스 중지시키기 $ kill -9 [pid번호] Permission denied 포트 권한이 없어서 발생하는 오류 포트가 열려있는데도 오류가 발생한다면 아래 CentOS 보안 정책에 의해 막혔을 수도 있음. 포트를 추가해보고 재시도 포트 추가 $ semanage port -a -t http_port_t -p tcp [포트 번호] 포트 확인 $ semanage port -l | grep http_port_t unable to verify..

Nginx :: 이중화, SSL, WebSocket

각 서버의 포트별로 나누어 이중화 하는 방법 데이터베이스 이중화는 MySQL/MariaDB :: 단방향, 양방향 이중화 (Replication) 에서 확인할 수 있습니다. 테스트 서버 정보 대상서버: 0.0.0.1 대상포트: 5000, 5010, 5020 Nginx 환경 설정 (기본) SSL 인증없이 HTTP로 접속하는 경우 upstream serv_a { server 0.0.0.1:5000; server 0.0.0.1:5000 backup; } upstream serv_b { server 0.0.0.1:5010; server 0.0.0.1:5010 backup; } upstream serv_c { server 0.0.0.1:5020; server 0.0.0.1:5020 backup; } server {..

반응형