[2] Nginx 서버 셋업 - 특정버전 nginx 다운로드하여 셋업

시스템 경로에 셋업하여 실행하는 법이 있지만, 다운로드 및 빌드하여 셋업하는 방법으로 진행하겠습니다.

구축환경

- Red Hat Enterprise Linux release 9.4 (Plow)

1. NGINX 다운로드 및 압축 해제

``` wget http://nginx.org/download/nginx-1.21.6.tar.gz tar -xvf nginx-1.21.6.tar.gz ```


2. 필요 Library 설치

``` sudo yum install -y gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel

``` - gcc: C 컴파일러로, NGINX 소스 코드를 컴파일하여 실행 가능한 프로그램으로 만드는데 필요합니다. - pcre: Perl Compatible Regular Expressions 라이브러리로, NGINX에서 정규 표현식을 처리할 수 있도록 지원합니다. - pcre-devel: PCRE 라이브러리의 개발 헤더 파일을 포함하며, NGINX를 컴파일할 때 필요합니다. - zlib: 데이터 압축을 위한 라이브러리로, NGINX의 Gzip 압축 기능을 사용하기 위해 필요합니다. - zlib-devel: zlib의 개발 파일을 포함하며, 소스 컴파일 시 필요한 헤더 파일과 라이브러리를 제공합니다. - openssl: SSL/TLS 암호화를 위한 라이브러리로, HTTPS 및 보안 연결을 처리하기 위해 NGINX에 필요합니다. - openssl-devel: OpenSSL 라이브러리의 개발 헤더 파일을 포함하며, NGINX의 SSL/TLS 지원을 컴파일할 때 필요합니다.


만약 설치시 아래 에러가 발생한다면

``` Red Hat Enterprise Linux 9 for x86_64 - BaseOS (RPMs) 0.0 B/s | 0 B 00:00 Errors during downloading metadata for repository 'rhel-9-for-x86_64-baseos-rpms': - Curl error (91): SSL server certificate status verification FAILED for https://cdn.redhat.com/content/dist/rhel9/9/x86_64/baseos/os/repodata/repomd.xml [OCSP response has expired] 오류: repo를 위한 메타자료 내려받기에 실패하였습니다 'rhel-9-for-x86_64-baseos-rpms': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried ```

아래 명령어 이후 진행하면 되네요 ( 시스템 시간이 맞지않을 경우 에러 나는현상 )

``` systemctl restart chronyd ```


3. 경로 설정

/root 경로에 설치

``` ./configure --prefix=$PWD/build --sbin-path=/root/nginx/sbin/nginx --conf-path=/root/nginx/conf/nginx.conf --error-log-path=/root/nginx/logs/error.log --http-log-path=/root/nginx/logs/access.log --http-client-body-temp-path=/root/nginx/client_body_temp --http-proxy-temp-path=/root/nginx/proxy_temp --http-fastcgi-temp-path=/root/nginx/fastcgi_temp --pid-path=/root/nginx/logs/nginx.pid --lock-path=/root/nginx/logs/nginx.lock make make install

```

3-1. 설정별 설명

``` 1. ./configure --prefix=$PWD/build: 설치될 기본 디렉토리를 현재 작업 디렉토리 내의 `build` 폴더로 지정. 2. --sbin-path=/root/nginx/sbin/nginx: 실행 파일 nginx가 설치될 경로 지정. 3. --conf-path=/root/nginx/conf/nginx.conf: NGINX 설정 파일의 경로를 지정. 4. --error-log-path=/root/nginx/logs/error.log: 에러 로그 파일의 경로를 지정. 5. --http-log-path=/root/nginx/logs/access.log: HTTP 요청 로그 파일의 경로를 지정. 6. --http-client-body-temp-path=/root/nginx/client_body_temp: 클라이언트 본문 임시 파일을 저장할 경로를 지정. 7. --http-proxy-temp-path=/root/nginx/proxy_temp: 프록시 요청 임시 파일 저장 경로를 지정. 8. --http-fastcgi-temp-path=/root/nginx/fastcgi_temp: FastCGI 요청 임시 파일 저장 경로를 지정. 9. --pid-path=/root/nginx/logs/nginx.pid: NGINX의 프로세스 ID 파일 경로를 지정. 10. --lock-path=/root/nginx/logs/nginx.lock: 잠금 파일의 경로를 지정하여 중복 실행 방지.

```


4. 설치 완료 확인

``` [root@vbox nginx]# pwd /root/nginx

[root@vbox nginx]# ll 합계 4 drwxr-xr-x. 2 root root 4096 11월 3 23:47 conf drwxr-xr-x. 2 root root 6 11월 3 23:47 logs drwxr-xr-x. 2 root root 19 11월 3 23:47 sbin

```


5. nginx 서버 설정

설정은 우선 아래과 같이 세팅 ``` worker_processes 1024;

events { worker_connections 1024; use epoll; }

http { include mime.types; default_type application/octet-stream;

sendfile on; keepalive_timeout 65; large_client_header_buffers 4 16k;

server { listen 10099; server_name localhost;

location / { root html; index index.html index.htm; }

} }

```

6. 실행

nginx 설치된 경로의 sbin 접근

``` cd /root/nginx/sbin ./nginx

```

위 명령어 실행 시, ps -ef | grep nginx로 프로세스 확인

``` nobody 44425 43920 0 23:56 ? 00:00:00 nginx: worker process nobody 44426 43920 0 23:56 ? 00:00:00 nginx: worker process nobody 44427 43920 0 23:56 ? 00:00:00 nginx: worker process nobody 44428 43920 0 23:56 ? 00:00:00 nginx: worker process nobody 44429 43920 0 23:56 ? 00:00:00 nginx: worker process

```


7. 접근 확인

VM에서 띄운 서버이기 때문에 포트포워딩과 내부에서 방화벽 해제가 필요하다

7-1. 포트포워딩 추가

virtualbox port forwarding

7-2. 방화벽 해제

``` [root@vbox nginx] $ sudo firewall-cmd --permanent --add-port=10099/tcp success [root@vbox nginx] $ sudo firewall-cmd --reload success

```


8. 동작 확인

웹에서 동작 확인

port forwarding run


nginx 로그 접근 확인 ``` 10.0.2.2 - - [04/Nov/2024:00:06:21 +0900] "GET / HTTP/1.1" 403 555 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36" 10.0.2.2 - - [04/Nov/2024:00:06:22 +0900] "GET /favicon.ico HTTP/1.1" 500 579 "http://127.0.0.1:10099/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36"

```


댓글

이 블로그의 인기 게시물

[로스트아크] 제작 효율 최적화 위한 영지 세팅

[로스트아크] 로스트아크 생활 도구 옵션

한국 핵무장 논의와 방위산업 관련주: 핵무기 개발 과정과 유망 종목 분석