nginx 입문 강좌
설치 및 시작
#
yum install nginx
#
service start nginx
#
nginx -s reload
프로필
기본 설정 파일 은
/etc/nginx/nginx.conf
에 있 습 니 다. 이 파일 은 설정 파일 의 입구 입 니 다. 일반적으로 전역 정 보 를 설정 합 니 다.user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
keepalive_timeout 65;
include /etc/nginx/conf.d/*.conf;
}
이 프로필 에는 일반적으로 한 문장
include /etc/nginx/conf.d/*.conf
이 있 는데, 각 하위 서비스의 설정 정 보 를 포함한다정적 사이트
/etc/nginx/conf.d
에 파일 하나만 추가 example.com.conf
server {
listen 80;
#
server_name example.com;
access_log /var/log/nginx/example.log main;
error_log /var/log/nginx/example.err main;
location / {
#
root /var/www/example;
try_files $uri $uri/ /index.html;
index index.html index.htm;
}
}
server_name
: 서비스의 이름, 사용 자 는 이 이름 으로 서 비 스 를 방문 하고 서로 다른 서 비 스 는 서로 다른 server 를 사용 합 니 다.name 구분, 같은 nginx 인 스 턴 스 에서 여러 서 비 스 를 배치 할 수 있 습 니 다 root
: 정적 자원 경로 access_log
: 로그 출력 경로, 로그 형식 은 마지막 매개 변 수 를 통 해 지정 합 니 다. 이 main 은 로그 형식 이름 입 니 다. 이전 프로필 에서 log_format
마찬가지 로
/etc/nginx/conf.d
에 파일 하 나 를 추가 proxy.conf
upstream yourservice {
keepalive 32;
server yourserver:;
}
server {
listen 80;
server_name proxy;
access_log /var/log/nginx/proxy.log access;
error_log /var/log/nginx/proxy.err;
location / {
proxy_pass http://yourservice;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header User-Agent $http_user_agent;
proxy_set_header X-Real-IP $http_x_real_ip;
proxy_set_header X-Forwarded-For $http_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
upstream
: 하나의 서 비 스 를 정의 합 니 다. server
안에 여러 개의 백 엔 드 서비스 주 소 를 지정 하고 nginx 를 이용 하여 부하 균형 proxy_pass
: 우리 가 정의 한 서비스 에 역방향 대리 proxy_set_header
: 서 비 스 를 요청 할 때 머리 필드 를 설정 합 니 다. 예 를 들 어 userAgent 와 클 라 이언 트 ip 내장 변수
nginx 설정 파일 에 대량의 내장 변 수 를 제공 합 니 다.
$romote_addr
: 클 라 이언 트 ip 주소 $remote_user
: 클 라 이언 트 사용자 이름 $time_local
: local 형식 시간 $time_iso8601
: iso 8601 형식 시간 $scheme
: http 프로 토 콜 $request
: 요청 한 url 과 http 프로 토 콜 $status
: 되 돌아 오 는 상태 코드 $body_bytes_sent
: 되 돌아 오 는 패키지 크기 $http_referer
: 요청 페이지 원본, header ["Referer"] $http_user_agent
: 브 라 우 저 정보, 헤더 ["User - Agent"] $http_x_real_ip
: 사용자 실제 ip, header ["X - Real - IP"] $http_x_forwarded_for
: 대리 과정, header ["X - Forward - FOR"] 로그 분석 이 필요 하 다 면 json 형식의 로 그 를 사용 하 는 것 이 좋 습 니 다.
log_format
명령 을 통 해 로그 형식 을 사용자 정의 할 수 있 습 니 다.http {
log_format access escape=json
'{'
'"@timestamp":"$time_iso8601",'
'"remoteAddr":"$remote_addr",'
'"remoteUser":"$remote_user",'
'"xRealIP":"$http_x_real_ip",'
'"xForwardedFor":"$http_x_forwarded_for",'
'"request":"$request",'
'"status": $status,'
'"bodyBytesSent":"$body_bytes_sent",'
'"resTimeS":"$request_time",'
'"referrer":"$http_referer",'
'"userAgent":"$http_user_agent"'
'}';
}
이 로그 형식 은
/etc/nginx/nginx.conf
http 필드 에서 정의 할 수 있 으 며, 각 server 는 직접 참조 할 수 있 습 니 다.server {
access_log /var/log/nginx/example.log access;
}
날짜 형식 이 베 이 징 시간 으로 표시 되 기 를 원한 다 면 시간 대 를 설정 해 야 합 니 다.
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
echo "Asia/Shanghai" >> /etc/timezone
gzip 압축
돌아 오 는 정적 자원 이 비교적 크 고 대역 폭 이 병목 이 되 므 로 gzip 압축 을 고려 할 수 있 습 니 다. 200 k 의 파일 은 몇 십 k 까지 압축 할 수 있 고 효과 가 뚜렷 합 니 다. gzip 를 여 는 설정 도 간단 합 니 다. 직접 수정
/etc/nginx/nginx.conf
하면 됩 니 다.http {
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_comp_level 8;
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript;
gzip_vary on;
gzip_disable "MSIE [1-6]\.";
}
링크
본문 링크:
https://tech.hatlonely.com/edit/53
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
간단! Certbot을 사용하여 웹 사이트를 SSL(HTTPS)화하는 방법초보자가 인프라 주위를 정돈하는 것은 매우 어렵습니다. 이번은 사이트를 간단하게 SSL화(HTTP에서 HTTPS통신)로 변경하는 방법을 소개합니다! 이번에는 소프트웨어 시스템 Nginx CentOS7 의 환경에서 S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.