20210714 TIL

NGINX

NGINX는 내부에 서버사이드 랭귀지 프로세스가 없기 때문에 서버사이드 랭귀지를 사용하는 standalone server를 사용해야한다.

index index.php index.html

location / {
	try_files $uri $uri/ =404;
	# uri에서 입력한 파일들이 있으면 그걸 내어주고 아니면 $uri/로 바꾸어서 re-evaluation하게 되어
	# 결국에는 index에 명시한 파일들을 내어주게 되며 그 마저도 없으면 404 반환.
}

# fastCGI를 활용
# fastCGI는 기본적으로는 http 같이 바이너리 데이터를 주고 받는게 사용되는
# 프로토콜이라고 볼 수 있다.
location ~\\.php$ {
	include fastcgi.conf;
	fastcgi_pass unix:/run/php/php7.1-fpm.sock;
}	

/request_path/ 로 진입했을때, nginx가 제공하는 파일들을 명시. /[root_path]/index.php가 없으면 /[root_path]/index.html을 제공하고 그 마저도 없으면 403 반환.

위의 명령어대로 conf를 작성하고 돌리면 502 bad gateway 에러가 발생할 수 있는데 그 이유는 unix 소켓의 유저와 nginx worker의 유저가 달라서 퍼미션 디나이가 생기기 때문이다. 이러한 에러는 흔한 에러이며, conf의 main context에 user www-data; 를 명시해주면 해결이 된다.(아하.. 그래서 user가 필요한 거구만..?)

댓글을 작성해보세요.

채널톡 아이콘