Nginx 서버 초기 기본 설정 안내
# www
groupadd -f www
# nginx
useradd -s /sbin/nologin -g www nginx
nginx 로그 파일 을 저장 할 디 렉 터 리 를 만 들 고 권한 을 부여 합 니 다.
# nginx
mkdir /var/log/nginx
#
chown nginx.www /var/log/nginx
2. 컴 파일 설치 저 는 pcre, zlib, nginx 의 압축 패 키 지 를 모두 / opt / software 경로 에 두 었 습 니 다. 서 비 스 는 / opt / server 경로 에 설치 해 야 합 니 다.먼저 pcre, zlib, nginx 에 대한 압축 을 풀 고 컴 파일 설치:
./configure --prefix=/opt/servers/nginx \
--user=nginx \
--group=www \
--pid-path=/var/run/nginx.pid \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-pcre=/opt/software/pcre-8.10 \
--with-zlib=/opt/software/zlib-1.2.5 \
--with-http_stub_status_module \
--with-http_realip_module \
--with-http_gzip_static_module \
--without-http_fastcgi_module \
--without-http_memcached_module \
--without-http_map_module \
--without-http_geo_module \
--without-http_autoindex_module \
--with-poll_module
&& make && make install
3. 시스템 설정 은 nginx 가 서비스 로 서 service 명령 을 통 해 시작 하거나 중단 할 수 있 기 를 바 랍 니 다.이렇게 하 는 장점 은 내 가 어떤 사용자 로 이 service 명령 을 호출 하 든 잘못된 계 정 을 사용 해서 안전 문 제 를 가 져 오지 않 는 다 는 것 이다.시스템 파일 만 들 기:
vim /etc/init.d/nginx
앞 사람 이 나 무 를 심 으 면 뒷사람 이 더 위 를 식 힌 다.이미 늙 은 새 가 시작 프로필 을 만 들 었 습 니 다:
#!/bin/bash
# v.0.0.1
# create by jackbillow at 2007.10.15
# nginx - This shell script takes care of starting and stopping nginx.
#
# chkconfig: - 60 50
# description: nginx [engine x] is light http web/proxy server
# that answers incoming ftp service requests.
# processname: nginx
# config: /etc/nginx.conf
nginx_path="/opt/servers/nginx"
nginx_pid="/var/run/nginx.pid"
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
[ -x $nginx_path/sbin/nginx ] || exit 0
RETVAL=0
prog="nginx"
start() {
# Start daemons.
if [ -e $nginx_pid -a ! -z $nginx_pid ];then
echo "nginx already running...."
exit 1
fi
if [ -e $nginx_path/conf/nginx.conf ];then
echo -n $"Starting $prog: "
$nginx_path/sbin/nginx -c $nginx_path/conf/nginx.conf &
RETVAL=$?
[ $RETVAL -eq 0 ] && {
touch /var/lock/subsys/$prog
success $"$prog"
}
echo
else
RETVAL=1
fi
return $RETVAL
}
# Stop daemons.
stop() {
echo -n $"Stopping $prog: "
killproc -d 10 $nigx_path/sbin/nginx
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f $nginx_pid /var/lock/subsys/$prog
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
status $prog
RETVAL=$?
;;
*)
echo $"Usage: $0 {start|stop|restart|status}"
exit 1
esac
exit $RETVAL
여기 경로: 참조
nginx_path="/opt/servers/nginx"
nginx_pid="/var/run/nginx.pid"
nginx 설치 경로 가 다른 위치 에 있다 면 수정 하 십시오!그리고 이 파일 에 실행 권한 을 부여 합 니 다:
chmod +x /etc/init.d/nginx
시스템 서비스 에 추가:
chkconfig --add nginx
chkconfig nginx on
다음 명령 으로 nginx 서 비 스 를 제어 할 수 있 습 니 다!인용 하 다.
# nginx
service nginx start
# nginx
service nginx stop
# nginx
service nginx restart
# nginx
service nginx status
4. 기본 설정 이 상기 작업 을 완성 한 후에 nginx 는 급히 사용 하지 못 하고 기본 적 인 설정 과 최적화 작업 을 해 야 합 니 다.nginx 프로필 수정:
vim /opt/servers/nginx/conf/nginx.conf
미조정 인용
# , nginx nginx www
user nginx www;
# (2 CPU )
worker_processes 4;
# , [debug | info | notice | warn | error | crit]
error_log /var/log/nginx/error.log crit;
# ulimit -n
work_rlimit_nofile 65535;
events {
# I/O ,Linux epoll ,Unix kqueue
use epoll;
#
worker_connections 51200;
}
http{
include mime.types;
default_type application/octet-stream;
# '"$sent_http_cache_control" "$sent_http_pl" "$request_time"'
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"'
'"$sent_http_cache_control""$sent_http_pl" "$request_time"';
access_log /var/log/nginx/access.log main;
...
server{
...
location / {
root html;
index index.html index.htm index.jsp index.do;
# header host、ip
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass_header Content-Type;
proxy_pass_header Content-Disposition;
proxy_pass_header Content-Length;
...
}
}
}
5. 가상 디 렉 터 리 nginx 는 가상 디 렉 터 리 를 설정 하 는 것 이 간단 합 니 다. 주로 루트, alias 두 가지 명령 을 사용 합 니 다.접근 그림 서비스 예: 루트, 상대 경로 참조 에 사용
location /image/ {
root /data;
}
"/ image /" 경 로 를 방문 할 때 실제 적 으로 "/ data / image /" 를 방문 합 니 다. "/ data" 뒤에 "/" alias 가 있 지 않도록 주의 하 십시오. 절대 경로 참조 에 사용 합 니 다.
location /image/ {
alias /data/img/;
}
"/ image /" 경 로 를 방문 할 때 실제로 "/ data / img /" 를 방문 합 니 다. "/ data / img /" 가 "/" 로 끝 나 는 것 을 주의 하 십시오.
6. 방향 을 바 꾸 고 가끔 은 링크 를 고려 하지 않 고 내 보 냅 니 다. 갑자기 어느 날 에 조정 이 필요 하고 이미 내 보 낸 링크 주 소 를 신속하게 철회 하지 못 합 니 다.nginx 설정 을 스스로 수정 할 수 밖 에 없습니다.예 를 들 어 내 보 낸 링크: / activity. do? m = v 는 / 경 로 를 가리 키 려 고 합 니 다: 참조
rewrite ^/activity(.*)$ / last;
요청 한 인자 도 가 져 오 려 면: 참조
rewrite ^/activity(.*)$ /$1 last;
$1 은 첫 번 째 매개 변 수 를 가리 키 며 유추 합 니 다.
6. 모니터링 인용
location /status {
stub_status on;
access_log off;
allow 10.10.0.0/16;
allow 10.1.0.0/16;
allow 10.11.0.0/16;
deny all;
}
인용 하 다.
Active connections: 14
server accepts handled requests
62 62 302
Reading: 0 Writing: 3 Waiting: 11
로그 분할
#!/bin/bash
# THis script run at 00:00
# author dongliang at 2012-09-07
# Nginx Log Path
logs_path="/var/log/nginx/"
# Nginx PID Path
nginx_pid="/var/run/nginx.pid"
mkdir -p ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/
mv ${logs_path}access.log ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/access_$(date -d "yesterday" +"%Y%m%
d").log
mv ${logs_path}error.log ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/error_$(date -d "yesterday" +"%Y%m%d"
).log
kill -USR1 `cat $nginx_pid`
실행 권한 부여
chmod +x nginx_log.sh
새벽 실행
crontab -e
0 0 * * * /opt/script/nginx_log.sh
8. Nginx 부하 균형 은 http {...} 에 upstream {...} 을 설정 합 니 다. 참고: 참조
upstream tomcat {
server 10.11.155.26:8080;
server 10.11.155.41:8080;
}
이어서 location 노드 를 수정 하고 프 록 시 설정: 참조
location / {
...
proxy_pass http://tomcat;
...
}
루트 경 로 를 방문 할 때 두 대의 서버 로 돌아 가면 서 백 엔 드 서버 가 tomcat 인지 Jetty 인지 상 관 없 이 조롱박 에 따라 바 가 지 를 그리 면 됩 니 다.물론 어떤 기 계 는 성능 이 좋 거나 부하 가 낮 으 면 높 은 부하 방 문 량 을 부담 할 수 있 고 가중치 (weight) 를 통 해 방문 빈 도 를 높 일 수 있다.수치 가 높 을 수록 배 정 된 요청 수가 많 습 니 다.server 명령 매개 변 수 는 다음 과 같 습 니 다. weight ― 가중치, 수치 가 클 수록 요청 수가 많 고 기본 값 은 1 입 니 다.max_fails ― 접근 에 실패 한 백 엔 드 서버 에 접근 하려 는 횟수.기본 값 은 1 입 니 다. 0 으로 설정 하면 검 사 를 닫 습 니 다.fail_timeout ― 실효 시간 초과, 여러 번 의 방문 이 실 패 했 을 때 이 노드 에 대한 접근 을 중단 합 니 다.down ― 서버 를 영구적 으로 오프라인 상태 로 표시 하여 ip 에 사용 합 니 다.hash 명령.backup ― 비 backup 서버 가 모두 다운 되 거나 바 쁠 때 만 사용 합 니 다.
예 를 들 어 이렇게 설정 할 수 있 습 니 다: 참조
upstream tomcat {
server 10.11.155.26:8080 weight=5;
server 10.11.155.41:8080 weight=10;
}
후자 가 나 누 어 얻 는 요구 수 는 비교적 높 을 것 이다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.