개요
•
nginx 란?
◦
간단한 웹 서버
◦
프록시 서버
설치
apt install nginx # 설치
service nginx start # 실행
service nginx status # 실행 확인하기
Python
복사
•
/etc/nginx 폴더가 생긴다.
기본 설정
설정 파일
•
nginx.conf
◦
기본적으로 Nginx 에 관련된 설정 파일
◦
여기서 sites-enabled 폴더에있는 설정들도 가져온다.
•
sites-available
◦
가상 서버 환경들에 대한 설정 파일이 위치하는곳
•
sites-enabled
◦
sites-available 에 있는 설정 파일중 실제로 적용하고 싶은 파일을 symlink 로 연결한 폴더
http 블록
•
하위로 server 블록과 location 블록을 가지는 루트블록이다.
•
웹 트래픽을 처리하는 부분을 담고있다.
server 블록
•
하나의 웹사이트를 선언하는데 사용된다.
•
server 블록이 여러개면, 한개의 호스트로 여러 웹사이트를 서빙할 수 있다. (가상호스트)
•
디렉티브
◦
listen : 웹 사이트가 바라보는 포트
◦
server_name
▪
서버 도메인
▪
여러개가 올 수 있다. (example.com, www.example.com)
▪
와일드 카드(*)를 사용할 수 있다. (*.example.com, example.*)
◦
root : 웹 사이트의 root 폴더 경로
location 블록
•
url을 처리하는데 사용된다.
•
두번째 인자로 url 을 받는다.
◦
/ : 가장 구체적인 매치가 요청을 처리한다.
◦
~ : 정규표현식으로 매치를 수행한다.
◦
~* : 정규표현식에서 대소문자 구분없이 매치를 수행한다.
◦
^~ : 매치가 된다면, 다른 매치를 검색하지 않고 수행한다.
◦
= : 정확하게 일치하는 매치를 수행한다.
•
디렉티브
◦
root : 해당 location 의 문서의 root 경로
◦
index : 파일명이 명시되어 있지 않을때, 어떤파일로 연결해야할지 알려준다. (파일이 여러개 올 수 있음)
오토인덱스 설정
•
기본적으로 폴더에 접근하면 index 에 적어둔 파일들을 순차적으로 접근해본다.
•
오토 인덱스가 켜져있으면, 그래도 없으면 파일을 리스트를 보여준다.
•
만약에 존재하지 않는 폴더에 접근하면 404 를 return 해준다. (원래 있던것)
location / {
autoindex on;
try_files $uri $uri/ =404;
}
Bash
복사
리다이렉션 설정
server {
listen 80 default_server;
listen [::]:80 default_server;
return 301 https://$host$request_uri;
}
Bash
복사
참고
SSL (https) 설정
server {
listen 443;
ssl on;
ssl_certificate /etc/ssl/certs/localhost.dev.crt;
ssl_certificate_key /etc/ssl/private/localhost.dev.key;
}
Bash
복사
PHP 설정
•
주석 되어있는걸 풀면된다.
•
php 모듈과 nginx 를 연결하는 규약을 정의한것이 cgi 이다.
•
php-fpm (PHP FastCGI Process Manager) 를 통해서 php 를 연동시킨다.
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
}
Bash
복사