nginx 입문 시리즈 1
13638 단어 nginx
conf 파일 설명 부터 볼 게 요.
# vi nginx.conf
user nobody nobody; # nginx
worker_processes 2; # nginx , CPU
error_log logs/error.log notice; #
pid logs/nginx.pid; # pid
events {
worker_connections 1024; # 1024
}
http {
include 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 logs/access.log main; # sendfile on;
keepalive_timeout 65; # keepalive
# , server
server {
listen 80;
# ip 80, 192.168.1.202:80, , 192.168.1.202 80
server_name www.heytool.com; #
root /www/html/www.heytool.com; # ( )
index index.html index.htm; #
location / { # location
root /www/html/www.heytool.com; # ( )
}
error_page 500 502 503 504 /50x.html;
# , 500 , 50x.html
location = /50x.html {
root /www/html/www.heytool.com;
}
}
#
bbs.heytool.com server {
listen 80;
server_name bbs.heytool.com;
root /www/html/bbs.heytool.com;
index index.html index.htm; #
location / {
root /www/html/bbs.heytool.com;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /www/html/bbs.heytool.com;
}
}
}
nginx 시작, 테스트, 닫 기, 다시 시작
# /usr/local/nginx-1.0.6/sbin/nginx // nginx
# /usr/local/nginx-1.0.6/sbin/nginx –t // nginx
# /usr/local/nginx-1.0.6/sbin/nginx –s reload // nginx
# /usr/local/nginx-1.0.6/sbin/nginx –s stop // nginx
nginx 가상 호스트 설정
즉, 우리 가 흔히 말 하 는 도 메 인 이름 설정 입 니 다.
server_name: , , ,
server_name b.ttlsa.com c.ttlsa.com d.ttlsa.com, , , listen 80, ip , , ip 80 , 127.0.0.1 80, :
listen 127.0.0.1:80
root /data/site/b.ttlsa.com: , 。 : ,
access_log /data/logs/nginx/b.ttlsa.com-access.log main: location /{}
nginx 위치 설정
문법 규칙: location [= | ~ | ~ * | ^ ~] / uri / {...}
우선 일치 =, 그 다음 일치 ^ ~, 그 다음은 파일 의 순서 에 따라 정규 일치, 마지막 으로 전달 / 통용 일치.일치 가 성공 하면 일치 하지 않 고 현재 일치 하 는 규칙 에 따라 요청 을 처리 합 니 다.
, :
location /
{
echo "/"; // echo ,
}
location = /
{
echo "=/";
}
location = /nginx
{
echo "=/nginx";
}
location ~ \.(gif|jpg|png|js|css)$
{ echo "small-gif/jpg/png";
}
location ~* \.png$
{ echo "all-png";
}
location ^~ /static/
{ echo "static";
}
그러면http://a.ttlsa.com/, 완전히 일치 = / 2.http://a.ttlsa.com/nginx완전히 일치 합 니 다.http://a.ttlsa.com/xxx/1111.PNG (이것 은 대문자 입 니 다) 마지막 으로 ~ *. png $4 와 일치 합 니 다.http://a.ttlsa.com/static/1111.png, static 는 맨 뒤에 놓 여 있 지만 ^ 가 있 기 때문에 그 가 가장 잘 어울린다.
nginx root & alias 파일 경로 설정
nginx 가 지정 한 파일 경 로 는 루트 와 alias 두 가지 방식 이 있 습 니 다. 루트 와 alias 는 주로 nginx 가 location 뒤의 uri 를 어떻게 설명 하 는 지 에 달 려 있 습 니 다. 이 는 각각 다른 방식 으로 서버 파일 에 요청 을 표시 합 니 다.
:
location ~ ^/weblogs/ {
root /data/weblogs/www.ttlsa.com; autoindex on;
auth_basic "Restricted"; auth_basic_user_file passwd/weblogs;
}
URI /weblogs/httplogs/www.ttlsa.com-access.log ,web
/data/weblogs/www.ttlsa.com/weblogs/httplogs/www.ttlsa.com-access.log 。 [info]root URI , /path/uri。[/info] , path/weblogs/httplogs/www.ttlsa.com-access.log。
:
location ^~ /binapp/ {
limit_conn limit 4; limit_rate 200k; internal;
alias /data/statics/bin/apps/;
}
alias location , 。 URI
/binapp/a.ttlsa.com/favicon ,web
/data/statics/bin/apps/a.ttlsa.com/favicon.jgp 。 [warning]1. alias , ”/”。
2. alias 。
3. alias , 。
4. alias location 。[/warning]
요약 하면 루트 는 뿌리 에 해당 하고 특별한 점 은 뿌리 가 어디 에 있 습 니까?
한편, alias 는 별명, 즉 매 핑 된 경로 이 고 다른 곳 일 수도 있 기 때문에 그 자체 가 지 워 야 합 니 다.
nginx 변수
ngx_http_core_module 모듈 은 대량의 변 수 를 제공 합 니 다.
$arg_PARAMETER HTTP , /index.php?site=www.ttlsa.com, $arg_site www.ttlsa.com .
$args HTTP 。 , /index.php?width=400&height=200 ,$args width=400&height=200.
$binary_remote_addr 。 :\x0A\xE0B\x0E
$body_bytes_sent http ,
$content_length Content-Length
$content_type Content-Type
$cookie_COOKIE cookie
$document_root root
$uri URI,
$document_uri $uri
$request_uri URI, 。$uri $document_uri , URI, $request_uri , URI.
$host Host 。 Host , server
( ) 。 Host , IP:PORT, $host , IP。$host 。 http_HEADER http_host ,http_host Host 。
$hostname Nginx , gethostbyname
$http_HEADER HTTP 。HEADER 。 , Host $http_host
$sent_http_HEADER HTTP 。HEADER 。 , $sent_ http_content_type Content-Type
$is_args URI , ,$is_args ?, ,
$limit_rate ,0
$nginx_version Nginx
$query_string URI , $args , $query_string
$remote_addr
$remote_port
$remote_user Auth Basic Module
$request_filename URI root alias
$request_body HTTP , proxy_pass fastcgi_pass
$request_body_file HTTP
$request_completion , “ok”。 , , ; HTTP range , 。
$request_method HTTP , GET、PUT、POST
$scheme HTTP scheme, https://nginx.com/ https
$server_addr
$server_name
$server_port
$server_protocol , HTTP/1.1 HTTP/1.0
nginx 로그 설정
일 지 는 통계 오류 에 있어 서 매우 유리 하 다.로그 형식 logformat 명령 으로 정의 합 니 다.ngx_http_log_module 는 요청 로그 형식 을 정의 하 는 데 사 용 됩 니 다.
open_log_file_cache max=1000 inactive=20s valid=1m min_uses=2;
나머지 부분 은 내일 계속 하 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.