Nginx 입문 (2): 상용 기능 설정
nginx 의 설치 디 렉 터 리 에 들 어가 면 저 는
/etc/nginx
기본 nginx. config 설정 파일 이 있 습 니 다. 기본 설정 이 포함 되 어 있 고 기본 검색 /etc/nginx/conf.d/
디 렉 터 리 에 conf 로 끝 나 는 모든 파일 을 설정 합 니 다. 즉, 필요 한 설정 이 있 으 면 새. conf 파일 을 만 들 면 됩 니 다.다른 설정 을 하지 않 고 nginx 를 처음 시작 하려 면 설정 파일 의 위 치 를 정 해 야 합 니 다.
nginx -c /etc/nginx/nginx.conf
그리고 사이트 의 80 포트 를 방문 하면 됩 니 다!
중간 에 잘못 보고 하면 가장 자주 사용 하 는 동작, 즉 로 그 를 보 는 것 입 니 다.
tail -f /var/log/nginx/access.log
2. 파일 분석 설정 (분점 끝 에 주의)
user nginx;
# , cpu
worker_processes 1;
# , warn
error_log /var/log/nginx/error.log warn;
# pid
pid /var/run/nginx.pid;
#
events {
# worker
worker_connections 1024;
# (select,poll,epoll)
use epool;
}
#
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;
# , server
server{
# , 80
listen 80;
#
server_name www.xxxxx.top;
#'/' , location /1.html{}
location / {
#
root /soft/code/www;
#
index index.html;
}
#
error_page 500 502 503 504 /50x.html
# location
location = /50x.html{
root html
}
#include , include
include /usr/local/nginx/conf/vhost/*;
}
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
"/etc/nginx/nginx.conf" 38L, 735C
3. nginx 를 실행 하 는 프로필 테스트
설정 이 변경 되 었 다 면 nginx 가 설정 을 다시 불 러 오고 시작 할 수 있 도록 다음 작업 이 필요 합 니 다.
# nginx
nginx -c /etc/nginx/nginx.conf
#
nginx -t
#
nginx -s reload/restart
우 리 는 시작 한 후에 curl 을 통 해 Liux 에서 방문 결 과 를 직접 볼 수 있 습 니 다.
curl -v xxxxxxx.top
4. 로그 서비스 설정
로그 시각 화 페이지 를 설정 할 수 있 습 니 다. 고정된 주 소 를 방문 하여 nginx 의 실행 상황 을 얻 을 수 있 습 니 다.
4.1 설정 페이지
# server , /mystatus
location /mystatus{
stub_status on;
access_log off;
}
4.2 페이지 정보
다음은 방문 의http://xxxxxx.top/mystatus페이지 의 전시 정보
# nginx
Active connections: 2
#server
#accepts
# ,
#handled requests
server accepts handled requests
18 18 17
#reading header
#writing header
#waiting keep-alive ,
Reading: 0 Writing: 1 Waiting: 1
5. 다운로드 서비스 설정
다운로드 서 비 스 를 설정 할 수 있 습 니 다. 지정 한 서버 의 폴 더 를 통 해 이 폴 더 의 파일 을 nginx 를 통 해 브 라 우 저 에서 직접 다운로드 할 수 있 습 니 다.
location /down{
#
# : /soft/package/src/down
root /soft/package/src;
#
autoindex on;
#
autoindex_localtime on;
#
autoindex_exact_size off;
}
6. 접근 제한 및 요청 제한 설정
잦 은 요청 에 대해 서 는 nginx 를 통 해 서버 자원 을 너무 많이 사용 하지 않도록 제한 할 수 있 습 니 다.
참고:https://www.cnblogs.com/shouke/p/10157552.html
주: 여러 요청 이 하나의 TCP 연결 에 세 워 질 수 있 으 므 로 연결 제한 보다 요청 제한 이 유효 합 니 다.
6.1 성명 설정
# http , location
limit_req_zone $binary_remote_addr zone=req_zone:1m rate=1r/s;
6.2 설정 페이지
location / {
root /soft/code/www;
index index.html;
# location
# ,
#limit_req zone=req_zone;
# , , burst, 503
limit_req zone=req_zone burst=3 nodelay;
}
6.3 접근 제한
# location
#deny , ip all
#allow
deny 222.173.61.94;
deny 39.128.149.179;
allow all;
주의: 논리 적 인 순서 가 있 는 것 을 거부 하고 허용 합 니 다. 이들 의 상하 위치 가 실 행 될 때 영향 을 줍 니 다.
예 를 들 어 deny all;allow 222.173.61.94;
모든 접근 을 거부 합 니 다.
7. 로그 인 인증
저 희 는 nginx 를 통 해 사용자 의 요청 에 로그 인 인증 차단 을 할 수 있 습 니 다.
7.1 설치 httpd - tools
[root@iZwz9ev02los7q1d71e7muZ nginx]# yum install httpd-tools
7.2 htpasswd 설명
[root@iZwz9ev02los7q1d71e7muZ nginx]# htpasswd --help
Usage:
htpasswd [-cimBdpsDv] [-C cost] passwordfile username
htpasswd -b[cmBdpsDv] [-C cost] passwordfile username password
htpasswd -n[imBdps] [-C cost] username
htpasswd -nb[mBdps] [-C cost] username password
#
-c Create a new file.
-n Don't update file; display results on stdout.
-b Use the password from the command line rather than prompting for it.
-i Read password from stdin without verification (for script usage).
-m Force MD5 encryption of the password (default).
-B Force bcrypt encryption of the password (very secure).
-C Set the computing time used for the bcrypt algorithm
(higher is more secure but slower, default: 5, valid: 4 to 31).
-d Force CRYPT encryption of the password (8 chars max, insecure).
-s Force SHA encryption of the password (insecure).
#
-p Do not encrypt the password (plaintext, insecure).
#
-D Delete the specified user.
-v Verify password for the specified user.
On other systems than Windows and NetWare the '-p' flag will probably not work.
The SHA algorithm does not use a salt and is less secure than the MD5 algorithm.
7.3 htpasswd 사용
메모: 디 렉 터 리 를 가리 키 지 않 으 면 기본적으로 현재 디 렉 터 리 에. htpasswd 파일 을 생 성 합 니 다.
7.3.1 프로필 설정, 사용자 추가
[root@iZwz9ev02los7q1d71e7muZ /]# htpasswd -c /etc/nginx/auth_conf huang
# ,
htpasswd -b /etc/nginx/auth_conf
#
New password: xxxxxxx
Re-type new password: xxxxxxx
7.3.2 프로필 확인
[root@iZwz9ev02los7q1d71e7muZ /]# cat /etc/nginx/auth_conf
#
xxx:$apr1$u6cnrOVn$tlA7/I8CMyng.zEYrMr1W.
7.3.3 loaction 에서 모듈 사용 하기
#
auth_basic "please login!";
#
auth_basic_user_file /etc/nginx/auth_conf;
다시 방문 하면 계 정과 비밀 번 호 를 입력 하 라 고 요구 합 니 다!
8. 정적 자원 서비스 설정
nginx 를 통 해 정적 자원 서버 를 설정 할 수 있 습 니 다. 파일 을 가 져 오 라 고 요청 할 때 nginx 는 일치 하 는 파일 접 두 사 를 통 해 폴 더 에서 파일 을 자동 으로 가 져 올 수 있 습 니 다.
8.1 location 에서 특정 접 두 사 를 차단 하도록 설정 합 니 다.
# ,
location ~ .*\.(gif|GIF|jpg|JPG|jpeg|JEPG|png|PNG)$ {
gzip on;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/json application/x-javascript application/css application/xml application/xml+rss text/javascript application/x-httpd-php image/jpeg image/gif image/png;
#
root /soft/package/img;
}
8.2 그림 전송 설정
# gzip
#
gzip on;
#http
gzip_http_version 1.1;
#
gzip_comp_level 2;
#
gzip_types image/gif image/jpeg image/png image/svg+xml image/tiff image/vnd.wap.wbmp image/webp image/x-icon image/x-jng image/x-ms-bmp
주의: gziptype 이 란 은 nginx 설치 디 렉 터 리 에서 모든 종 류 를 찾 을 수 있 습 니 다.
[root@iZwz9ev02los7q1d71e7muZ package]# vim /etc/nginx/mime.types
types {
text/html html htm shtml;
text/css css;
text/xml xml;
image/gif gif;
image/jpeg jpeg jpg;
application/javascript js;
application/atom+xml atom;
application/rss+xml rss;
text/mathml mml;
text/plain txt;
text/vnd.sun.j2me.app-descriptor jad;
text/vnd.wap.wml wml;
text/x-component htc;
image/png png;
image/svg+xml svg svgz;
image/tiff tif tiff;
image/vnd.wap.wbmp wbmp;
image/webp webp;
image/x-icon ico;
image/x-jng jng;
image/x-ms-bmp bmp;
... ...
8.3 도 난 방지 체인 설치
# location ip/
valid_referers none blocked 111.17.194.89;
# , 403
# :if ()
if ($invalid_referer){
return 403;
}
주:
자원 서버 는 왕 이 나 7 우 cdn 같은 서비스 업 체 를 통 해 오입질 을 할 수 있 습 니 다. 반드시 자신의 서버 트 래 픽 과 성능 에 한계 가 있 기 때 문 입 니 다.
자세 한 내용 은 앞서 그 티 포 라 가 칠 우 운 을 사용 해 도상 을 만 든 글 을 참고 할 수 있다.
9. 역방향 에이전트
이것 은 nginx 에서 가장 자주 사용 하 는 기능 일 수 있 습 니 다. 포트 대 리 를 설정 하면 우 리 는 특정한 포트 에 대한 요청 대 리 를 다른 포트 로 할 수 있 습 니 다. 예 를 들 어 가장 흔히 볼 수 있 는 80 회전 8080 입 니 다.
9.1 설정 페이지
# location
location / {
# http://www.qiuyeye.cn/index.html
proxy_pass http://www.qiuyeye.cn/index.html;
include /etc/nginx/conf.d/proxy_params.conf;
}
9.2 설정 매개 변수
#
proxy_redirect default;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 30;
proxy_send_timeout 60;
proxy_read_timeout 60;
proxy_buffer_size 32k;
proxy_buffering on;
proxy_buffers 4 128k;
proxy_busy_buffers_size 256k;
proxy_max_temp_file_size 256k;
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.