ubunbu nginx 설치

2023. 5. 1. 12:10Web Server/nginx

설치하면 자동으로 실행 됨

설치위치: /etc/nginx

sudo apt install nginx

기동 명령어

# 부팅시 자동시작
sudo systemctl start nginx
sudo systemctl status nginx
sudo systemctl stop nginx

# 환경설정 변경 후 무중단 적용
sudo systemctl reload nginx

# 환경설정 변경 후 문법확인
sudo nginx -t

# 서비스 포트 확인
# sudo로 실행해야 PID/Program name 정보가 나옴
sudo netstat -tnlp

reverse proxy 설정

https://velog.io/@prayme/ubuntu%EC%97%90%EC%84%9C-nginx-reverse-proxy-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0

 

ubuntu에서 nginx reverse-proxy 설정하기

nginx 최신버전(1.14)을 사용하다보니 기존에 참고하던 책과 구조가 좀 달라진 것 같다. 그래서 새로 포스팅을한다. 참고문서1를 열심히 참고했다.다음 명령어를 차례로 실행한다. sudo apt update , sudo

velog.io

# default virtual host 제거
sudo unlink /etc/nginx/sites-enabled/default

# /etc/nginx/sites-available/reverse-proxy.conf 생성
# server를 2개 설정하지 않으면, listen에서 IP부분이 적용 안됨: netstat -tnlp로 확인 가능
sudo vi /etc/nginx/sites-available/reverse-proxy.conf
--------------------------------------------------
server {
        listen 192.168.131.111:8081;

        access_log /var/log/nginx/reverse-access.log;
        error_log /var/log/nginx/reverse-error.log;

        location / {
                proxy_pass http://192.168.49.100:8080;
        }
}

server {
        listen 192.168.131.200:8081;

        access_log /var/log/nginx/reverse-access.log;
        error_log /var/log/nginx/reverse-error.log;

        location / {
                proxy_pass http://192.168.49.100:8080;
        }
}
--------------------------------------------------

# 링크 추가
sudo ln -s /etc/nginx/sites-available/reverse-proxy.conf /etc/nginx/sites-enabled/reverse-proxy.conf

# 문법 확인
sudo nginx -t

# 적용
sudo systemctl reload nginx

proxy 설정시, 로그는 1번만 찍히고, 브러우져에 기술된 IP가 기록됨

도메인으로 Reverse Proxy 설정하기

server {
	listen 8080;
	listen [::]:8080;
    
    # 도메인이 여러개인 경우, ','로 구분함
	server_name www.test.com (,a.text.com);
    
	location / {
    	proxy_pass http://{minikube ip}:8080;
        proxy_set_header Host $host; # 대상 서비스에 도메인 정보를 넘기려면 필요, 없으면 404에러발생
	}
}

http -> https redirect

server {
        listen 80;
        listen [::]:80;

        server_name _;
        location / {
                return 301 https://$host$request_uri;
        }
}

기본 디렉토리 설정

server {
   ..
   location {
       root {원하는 위치};
       index index.html;
   }
   ..
}

디렉토리를 변경하면 403 에러가 발생할 수 있음
변경하는 root 디렉토리의 소유자로 nginx를 기동해야 해결됨

원하는 계정으로 nginx 기동하기

https://rainbound.tistory.com/entry/nginx-forbidden-403-error-%EC%97%90%EB%9F%AC

 

nginx forbidden 403 error 에러

목차 2023/02/16 15:05:17 [error] 789873#0: *1 "/home/ubuntu/app/proxy-nginx-1.22.1/html/index.html" is forbidden (13: Permission denied), client: 127.0.0.1, server: localhost, request: "GET / HTTP/1.1", host: "localhost" nginx 실행 했는데 위와 같

rainbound.tistory.com

# 상단에 user를 변경해주고 재기동해야 함
vi nginx.conf
------------------------
user {원하는 계정};
------------------------

nginx.conf 위치 찾기

nginx -t

에러 페이지 설정

# 환경파일
# error_page에 파일경로를 표시하면 에러 발생함
------------------------------
location / {
    root /abc/html;
    error_page {403 404 등 원하는 에러코드} /error.html;
}
------------------------------

# 에러파일 위치
/abc/html/error/error.html

'Web Server > nginx' 카테고리의 다른 글

nginx 인증 설정  (0) 2023.06.10
minikube proxy 설정  (0) 2023.06.06
nginx Trouble Shooting  (0) 2023.05.27
nginx 사설 ssl 적용  (0) 2023.05.07
vmware nginx 외부 오픈  (0) 2023.05.05