2019-07-09
nginx
(1) 여러 사 이 트 를 어떻게 구축 하 는 지 ww bbs blog
첫 번 째 과정: 여러 사이트 호스트 파일 만 들 기
[root@web01 ~]# cd /etc/nginx/conf.d/
[root@web01 conf.d]# cp www.conf bbs.conf
[root@web01 conf.d]# cp www.conf blog.conf
[root@web01 conf.d]# vim bbs.conf
server {
listen 80;
server_name bbs.oldboy.com;
▽ location / {
root /html/bbs;
index index.html index.htm;
}
"bbs.conf" 12L, 290C written
[root@web01 conf.d]# vim blog.conf
server {
listen 80;
server_name blog.oldboy.com;
root /html/blog;
index index.html index.htm;
}
error_page 404 500 502 503 504 https://www.baidu.com/search/error.html;
#location = /oldboy.jpg {
# root /html;
#}
"blog.conf" 12L, 292C written
[root@web01 conf.d]# cat www.conf bbs.conf blog.conf
server {
listen 80;
server_name www.oldboy.com;
location / {
root /html/www;
index index.html index.htm;
}
error_page 404 500 502 503 504 https://www.baidu.com/search/error.html;
#location = /oldboy.jpg {
# root /html;
#}
}
server {
listen 80;
server_name bbs.oldboy.com;
location / {
root /html/bbs;
index index.html index.htm;
}
error_page 404 500 502 503 504 https://www.baidu.com/search/error.html;
#location = /oldboy.jpg {
# root /html;
#}
}
server {
listen 80;
server_name blog.oldboy.com;
location / {
root /html/blog;
index index.html index.htm;
}
error_page 404 500 502 503 504 https://www.baidu.com/search/error.html;
#location = /oldboy.jpg {
# root /html;
#}
}
두 번 째 과정: 서로 다른 사이트 디 렉 터 리 만 들 기 / 사이트 페이지 정보 index. html 만 들 기 (www. oldboy. com)
[root@web01 conf.d]# mkdir /html/{www,bbs,blog} -p
[root@web01 conf.d]# for name in {www,bbs,blog};do echo "$name.oldboy.com" >/html/$name/index.html;done
[root@web01 conf.d]# for name in {www,bbs,blog};do cat /html/$name/index.html;done
www.oldboy.com
bbs.oldboy.com
blog.oldboy.com
[root@web01 conf.d]#
세 번 째 과정: DNS 분석 정보 설정
10.0.0.7 www.oldboy.com bbs.oldboy.com blog.oldboy.com
네 번 째 과정: nginx 프로그램 을 다시 시작 합 니 다.
컴 파일 설치 재 부팅 방법:
[root@web03 ~]# /application/nginx/sbin/nginx
[root@web03 ~]# ps -ef|grep nginx
root 6156 1 0 16:34 ? 00:00:00 nginx: master process /application/nginx/sbin/nginx
nobody 6157 6156 0 16:34 ? 00:00:00 nginx: worker process
root 6161 6100 0 16:35 pts/2 00:00:00 grep --color=auto nginx
[root@web03 ~]#
yum 설치:
방법 1: systemctl 명령 으로 nginx 프로그램 을 다시 시작 합 니 다.
[root@web01 conf.d]# systemctl restart/reload nginx
방법 2: nginx 명령 을 이용 하여 nginx 프로그램 을 다시 시작 합 니 다.
nginx
nginx -s reload
nginx -t #
문법
1- /
2-
3-
PS:
보충: 사이트 페이지 이상 배열 사고
01: DNS 분석 정 보 를 검사 합 니 다.
[c:\~]$ ping bbs.oldboy.com
Ping www.oldboy.com [10.0.0.7] 32 :
10.0.0.7 : =32 <1ms TTL=64
10.0.0.7 : =32 <1ms TTL=64
10.0.0.7 Ping :
: = 2, = 2, = 0 (0% ),
( ):
= 0ms, = 0ms, = 0ms
02: HTTP 요청 정보 확인 (패키지 검사)
03: HTTP 응답 정보 검사 (패키지 검사)
(2) 사이트 페이지 방문 방법
도 메 인 이름 기반 접근
포트 기반 접근
[root@web01 conf.d]# vim www.conf
server {
listen 8080; #
server_name www.oldboy.com;
location / {
root /html/www;
index index.html index.htm;
}
error_page 404 500 502 503 504 https://www.baidu.com/search/error.html;
#location = /oldboy.jpg {
# root /html;
#}
}
"www.conf" 12L, 292C written
[root@web01 conf.d]# systemctl reload nginx
접근 원리:
01. 지정 한 IP 주소 와 연결 하기 --- 10.0.0.7
02. 지정 한 포트 에 요청 하기 --- 80
03. 80 포트 와 일치 하 는 호스트 정 보 를 찾 습 니 다.
04. 사용자 와 일치 하 는 요청 호스트 정보
주소 기반 접근
[root@web01 conf.d]# cat www.conf
server {
listen 172.16.1.7:80;
server_name www.oldboy.com;
location / {
root /html/www;
index index.html index.htm;
}
error_page 404 500 502 503 504 https://www.baidu.com/search/error.html;
#location = /oldboy.jpg {
# root /html;
#}
}
[root@web01 conf.d]#
주의사항: nginx 프로그램 이 IP 주소 로 설 계 된 변경 사항 은 서 비 스 를 다시 시작 해 야 합 니 다 (부 드 러 운 재 부팅 이 아 닙 니 다)
[root@web01 conf.d]# systemctl reload nginx
[root@web01 conf.d]# curl 172.16.1.7
bbs.oldboy.com
[root@web01 conf.d]# netstat -lntup|grep nginx
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 1833/nginx: master
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1833/nginx: master
해결 방법: restart 로 서 비 스 를 다시 시작 합 니 다.
[root@web01 conf.d]# systemctl restart nginx
[root@web01 conf.d]# netstat -lntup|grep nginx
tcp 0 0 172.16.1.7:80 0.0.0.0:* LISTEN 1892/nginx: master
[root@web01 conf.d]# curl 172.16.1.7
www.oldboy.com
(3) nginx 를 이용 하여 사이트 디 렉 터 리 색인 표시
첫 번 째 과정: 첫 페이지 파일 을 삭제 합 니 다.
[root@web01 www]# ll
total 4
-rw-r--r-- 1 root root 15 Jul 10 16:33 index.html
[root@web01 www]# mv index.html{,.bak}
[root@web01 www]# ll
total 4
-rw-r--r-- 1 root root 15 Jul 10 16:33 index.html.bak
두 번 째 과정: 프로필 추가 명령 을 수정 하고 디 렉 터 리 색인 을 만 듭 니 다.
server {
listen 80;
server_name www.oldboy.com;
access_log /var/log/nginx/access_oldboy.log oldboy;
location / {
root /html/www;
index index.html index.htm;
autoindex on; --- ,
}
error_page 404 500 502 503 504 https://www.baidu.com/search/error.html;
#location = /oldboy.jpg {
# root /html;
"www.conf" 14L, 371C written
(4) nginx 를 이용 하여 네트워크 보안 액세스 제 어 를 실현
(1) 사용자 의 방문 정 보 를 바탕 으로 제어
첫 번 째 과정: 사이트 디 렉 터 리 환경 images 배치 av 금지 허용
images oldboy.jpg
av oldboy.html
[root@web01 conf.d]# cd /html/www/
[root@web01 www]# mkdir images av
두 번 째 과정: 프로필 편집
[root@web01 conf.d]# cat www.conf
server {
listen 80;
server_name www.oldboy.com;
access_log /var/log/nginx/access_oldboy.log oldboy;
location / {
root /html/www;
index index.html index.htm;
autoindex on;
charset UTF-8;
}
location /images {
allow all;
root /html/www;
index oldboy.jpg index.html index.htm;
}
location /av {
allow 10.0.0.1;
deny all;
root /html/www;
}
}
[root@web01 conf.d]#
(2) 사용자 의 인증 정 보 를 바탕 으로 제어
첫 번 째 과정: 암호 파일 정보 만 들 기
[root@web01 conf.d]# htpasswd -bc /etc/nginx/nginx.password oldboy oldboy123
Adding password for user oldboy
[root@web01 conf.d]# cat /etc/nginx/nginx.password
oldboy:$apr1$KzlvElme$jIoFDiewj3Vv50hrxLpW41
[root@web01 conf.d]#
두 번 째 과정: 호스트 프로필 작성
[root@web01 conf.d]# cat www.conf
server {
listen 80;
server_name www.oldboy.com;
access_log /var/log/nginx/access_oldboy.log oldboy;
auth_basic "oldboy61";
auth_basic_user_file /etc/nginx/nginx.password;
location / {
root /html/www;
index index.html index.htm;
autoindex on;
charset UTF-8;
}
}
PS:500 Internal Server Error
01: 작 성 된 코드 정보 가 정확 하지 않 습 니 다.
02: 웹 서비스 권한 에 문제 가 있 음
[root@web01 nginx]# chown www nginx.password
(5) nginx 를 이용 하여 사이트 상태 모니터링 실현
첫 번 째 과정: 모니터링 사이트 호스트 설정 파일 작성
[root@web01 conf.d]# cp www.conf stat.conf
[root@web01 conf.d]# vim stat.conf
server {
listen 80;
auth_basic "oldboy61";
listen 80;
server_name stat.oldboy.com;
location / {
stub_status ;
}
}
페이지 모니터링 정보
Active connections: 1 --- 총 활성화 병렬 링크 수
accepts --- 총 수신 링크 수 정보
handled --- 총 처리 링크 수 정보
전체 요청 수량
읽 기: 읽 기 요청 메시지 수량
쓰기: 답장 응답 메시지 수량
대기 열: 대기 열
지정 한 정 보 를 꺼 내 감시 하 다.
[root@web01 conf.d]# curl -H host:stat.oldboy.com 172.16.1.7 2>/dev/null|awk 'NR==3{pront $1}'
(6) nginx 프로그램 로그 설명
오류 로그: 기록 서비스 에서 자주 발생 하 는 오류
01: 서비스 실행 오류 정보
02: 사용자 가 페이지 에 접근 하 는 중 오류 발생
설정 방법:
error_log /var/log/nginx/error,log warn ( )
debug ---
info ---
notice ---
warn ---
error ---
crit ---
alertr ---
emerg ---
방문 로그: 사용자 방문 정 보 를 기록 합 니 다.
01: 사용자 가 사이트 에 방문 하 는 어떤 정 보 를 기록 합 니까?
02: 방문 사이트 사용자 정보 기록
설정 방법:
[root@web01 images]# cat /etc/nginx/nginx.conf
user www;
worker_processes 2;
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"';
log_format oldboy '$remote_addr [$time_local] "$request" oldboy'
#access_log /var/log/nginx/access_oldboy.log oldboy;
sendfile on;
#tcp_nopush on;
keepalive_timeout 0;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
[root@web01 images]#
nginx 기본 변수
$remote_addr ---- ip
$remote_user ---- 0
[$time_local] ----
$request ----
$status ----
$body_bytes_sent ---- ( )
$http_referer ---- ( )
삼 nginx 프로그램 영역 모듈 - location
기능: 서로 다른 uri 정보 와 일치 하여 해당 하 는 처 리 를 합 니 다.
사용 방법:
[root@web01 conf.d]# cat www.conf
server {
listen 80;
server_name www.oldboy.com;
location = / {
return 301;
}
location / {
return 302;
}
location /documents/ {
return 404;
}
location ^~ /images/ {
return 502;
}
location ~* \.(gif|jpg|jpeg)$ {
return 520;
}
}
[root@web01 conf.d]#
규범 사이트 디 렉 터 리 구조 정보
[root@web01 conf.d]# cat www.conf
server {
listen 80;
server_name www.oldboy.com;
location ~* \.jpg$ {
root /html/www/jpg;
}
location ~* \.png$ {
root /html/www/png;
}
location / {
root /html;
index index.html;
}
}
[root@web01 conf.d]#
4. nginx 프로그램 재 작성 기능 설명 rewrite url / uri / 의사 정적
(1) 점프 설정 에서 last 와 break 의 차이 점 비교 예시
[root@web01 conf.d]# cat www.conf
server {
listen 80;
server_name www.oldboy.com;
root /html;
location ~ ^/break/ {
rewrite ^/break/ /test/ break;
}
location ~ ^/last/ {
rewrite ^/last/ /test/ last;
}
location /test/ {
default_type application/json;
return 200 'ok';
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.