ubunbu nginx 설치
2023. 5. 1. 12:10ㆍWeb 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 설정
# 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
# 상단에 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 |