[Nginx]Linux에 Nginx 설치

콩심은데콩남·2023년 9월 26일
post-thumbnail

Nginx 설치

yum 저장소에는 nginx가 없기 때문에 외부 저장소를 추가해야 한다.

cd etc/um yum.repos.d/ninx.repo

stable 버전과 main line 버전 중 설치하고자 하는 저장소로 추가한다.

# stable version
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

# OR

# main line version
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=1

아래 명령어로 nginx 를 설치한다.

sudo yum install -y nginx

설치 완료 후 아래 명령어로 상태를 확인한다.

# nginx 버전 확인.
nginx -version

# nginx 기본 명령어.
sudo systemctl start nginx   # nginx 시작
sudo systemctl enable nginx  # 부팅시 자동실행
sudo systemctl status nginx  # 상태 확인
sudo systemctl stop nginx    # nginx 중지

# 실행 중 에러확인.
journalctl -xe

웹 서버 설정

기본 서버 설정 파일이 위치 : /etc/nginx/conf.d/default/conf
기본 웹 루트 디렉토리 : /usr/share/nginx/html
웹서버 기본 설정을 확인 할 수 있으며, 포트 및 도메인 설정 등 nginx의 설정을 변경할 수 있다.

# 설정파일 열기
sudo vim /etc/nginx/nginx.conf
# /etc/nginx/nginx.conf

server {
	# 포트 및 서버네임(도메인) 설정.
    listen       80;
    server_name  domain.com;

	# 기본 인코딩 설정
    charset utf-8;
    access_log  /var/log/nginx/admin.access.log  main;
    error_log   /var/log/nginx/admin.error.log   warn;

    location / {
        proxy_redirect     off;
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Proto $scheme;
		
        # 프록시 연결 설정.
        proxy_pass http://127.0.0.1:8080;
    }

    # redirect server error pages to the static page /50x.html
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

방화벽 설정

firewall 설치가 안되어 있는 경우가 있어 확인 후 아래 명령어로 설치한다.

# 설치
sudo yum install firewalld

# 서비스 시작
systemctl start firewalld

# 부팅 시 서비스 자동 시작.
systemctl enable firewalld

SElinux 설정

SELinx는 Linux의 보안을 강화해 주는 보안 강화 커널이고 zero-day 공격 및 buffer overflow 등 어플리케이션 취약점으로 인한 해킹을 방지해 주는 핵심 구성요소이다.

특정 서비스가 SELinux 때문에 동작하지 않는다면 SELinux를 끄기 보다는 해당 서비스가 SELinx 하에서 잘 동작하도록 설정을 수정하는걸 권장한다.

SELinx의 context에 의해 apache httpd가 연결할 수 있는 port 확인

sudo semanage port -l|grep http_port_t
# ex) http_port_t tcp 80, 81, 443, 488, 8008, 8009, 8443, 9000

semanage로 사용하고자 하는 포트(ex.8181)로 binding된 context가 있는지 확인한다. (없을 경우 사용가능)

sudo semanage port -l |grep 8181

http_port_t에 사용하고자 하는 포트(ex.8181)를 추가한다.

sudo semanage port -a -p tcp -t http_port_t 8181

httpd_port_t에 포트(ex.8181)를 삭제한다.
새로 등록한 포트 외 기존사용 포트는 삭제하지 않는 것을 권장한다.

sudo semanage port -d -p tcp -t http_port_t 8181
profile
코딩 손실을 막기 위한 재활 센터

0개의 댓글