****************************** 우분투 - nginx 설치 및 기본설정
마스터욱
4
93
0
0
2022-11-23 18:19:58
############################################
-- 설치전 준비사항
# apt update
# apt upgrade
# apt autoremove
-- 설치
# apt install nginx
-- 서비스 시작
# service nginx start
-- 설정파일
/etc/nginx/nginx.conf
############################################
-- 유저 추가
# adduser newuser
-- 유저 삭제
# deluser newuser
-- sudo 권한부여
/etc/sudoers
-- 간단하게 su 권한부여
usermod -aG sudo username
############################################
도메인 연결하기
설명 : /etc/nginx 폴더의
nginx.conf(파일)
sites-available(폴더)
sites-enabled(폴더)
위 3개의 파일과 폴더가 핵심이다.
nginx.conf 에는 sites-enabled 폴더만 include 하고,
실제 설정은 sites-available 에서 한다. 단 심볼릭 링크를 sites-enabled 폴더로 걸어둔다.
# ln -s /etc/nginx/sites-available/test.conf /etc/nginx/sites-enabled/test.conf
요약설명) /etc/nginx/nginx.conf > /etc/nginx/sites-enabled > sites-available(여기만 등록/수정하면 됨)
자세한 설명은 위 참고 링크에 다 나와있음.
샘플 설정코드
server {
listen 80;
server_name 도메인;
root /home/newuser/www;
index index.html index.html index.php;
}
브라우저로 사이트 접속시, 파일이 다운로드 되어진다면
nginx.conf 파일에 아래코드를 수정하라.
기존
default_type application/octet-stream;
변경
default_type text/html;
############################################
php 설치 및 연동
-- 설치 가능한 php 확인
# apt list | grep fpm
-- php 설치
# apt install php7.4-fpm
php - nginx 설정
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
관련 패키지 쉽게 검색
# apt-cache search php7.4
그밖에 기본 모듈 설치
# apt-get install php7.4-mysql php7.4-gd php7.4-curl php7.4-xmlrpc php-geoip php7.4-mbstring
############################################
mysql 설치 및 연동
-- 설치
# apt-get install mysql-server
-- 3306 포트 오픈
# ufw allow mysql
-- mysql 실행
# systemctl start mysql
-- 서버 재시작시 mysql 자동 재시작
# systemctl enable mysql
-- 계정생성
mysql> create user '유저명'@'localhost' identified by '비밀번호';
-- 계정에 권한 부여
grant all privileges on 데이터베이스명.* to '유저명'@'localhost'
############################################
SSL 설정
-- 무료 SSL letsencrypt 설치
-- nginx 에 적용
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/설치도메인/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/설치도메인/privkey.pem;
certbot 자동갱신
# certbot renew
############################################
방화벽 설정
****** 주의할 점은 22번 포트를 열어놓은 상태에서 방화벽을 켜야 한다는 것이다.(해보지는 않았지만 22번 포트가 막혀있는 상태에서 방화벽을 켜버리면 접속중인 SSH가 바로 튕길수도 있을거 같음...)
포트허용
# ufw allow 22
포트막기
# ufw deny 22
상태 확인
# ufw status
방화벽 켜기
# ufw enable
방화벽 끄기
# ufw disable