nginx 학습 - 입문 부터 정통 까지
Nginx 기본 용법
nginx: sudo service nginx start 재 부팅 nginx: sudo service nginx reload 종료 nginx: nginx - s stop
Nginx 의 주 프로필
우 리 는 보통 nginx. conf 를/etc/nginx/nginx. conf 에 놓는다.
user nginx;
# worker_processes的数值越大,Nginx的并发能力就越强
worker_processes 1;
# error_log代表Nginx错误日志存放的位置
error_log /var/log/nginx/error.log warn;
# pid是Nginx运行的一个标识
pid /var/run/nginx.pid;
events {
# worker_connections的数值越大,Nginx的并发能力就越强
worker_connections 1024;
}
http {
# include代表引入一个外部文件
# mime.types中存放着大量媒体类型
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;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
#引入了conf.d下以.conf为结尾的配置文件
include /etc/nginx/conf.d/*.conf;
}
Nginx 의 다른 파일
다른 프로필 은/etc/nginx/conf. d/*. conf 기본 설정 정보 에 놓 여 있 습 니 다. (이것 은 정적 자원 에 접근 하 는 것 입 니 다)
nginx ssl 단순 설정 (https 인증) -- 내 가 보기
server {
# listen代表Nginx监听ipv4的端口号
listen 80;
# listen代表Nginx监听ipv6的端口号
listen [::]:80;
# server_name代表Nginx接受请求的IP
server_name localhost;
location / {
# root:将接受到的请求根据/usr/share/nginx/html去查找静态资源
root /usr/share/nginx/html;
# index:默认去上述的路径中找到index.html或index.htm
index index.html index.htm;
}
#错误跳转页面(没有不耽误)
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
Nginx 역방향 에이전트
역방향 대 리 를 배 울 때 는 먼저 정방 향 대 리 를 이해 해 야 한다.
정방 향 에이전트:
1. 정방 향 프 록 시 서 비 스 는 클 라 이언 트 가 설립 한 2. 클 라 이언 트 는 프 록 시 서버 와 목표 서버 가 모두 누구 인지 파악 합 니 다. 3. 방문 권한 을 돌파 하고 방문 속 도 를 높이 며 목표 서버 에 클 라 이언 트 의 ip 주 소 를 숨 깁 니 다.
역방향 대리
1. 역방향 프 록 시 서버 는 서버 에 설 치 된 2. 클 라 이언 트 가 어떤 서버 에 접근 하 는 지 모른다. 3. 부하 균형 을 이 루 고 서버 의 진정한 ip 주 소 를 숨 길 수 있다.
역방향 프 록 시 코드 구현:
수정/etc/nginx/conf. d/*. conf
server {
listen 80;
listen [::]:80;
server_name localhost;
location / {
# 反向代理的服务器:127.0.0.1可以换成域名或者ip
proxy_pass http://127.0.0.1:8080/;
}
}
Nginx 의 location 경로 맵
1. = 일치
location = / {
#精准匹配,主机名后面不能带能和字符串
}
2. 공통 일치
location /xxx {
#匹配所有以/xxx开头的路径
}
3. 시작 경로 와 일치
location ^~ /xxx/xx {
#匹配所有以/xxx/xx开头的路径
}
4. 정규 일치
location ~ /xxx {
#匹配所有以/xxx开头的路径
}
5. 끝 경로 와 일치
location ~* \.(gif/jpg/png)$ {
#匹配以.gif、.jpg或者.png结尾的路径
}
6. 공통 일치
location / {
#通用匹配,匹配所有请求
}
Nginx 의 부하 균형
Nginx 는 세 가지 부하 균형 정책 이 있 습 니 다.
폴 링
upstream daili_server{
server localhost:8080; #服务器IP或域名
server localhost:8081; #服务器IP或域名
}
server {
listen 80;
listen [::]:80;
server_name localhost;
location / {
proxy_pass http://daili_server/; #负载均衡
}
}
중시 하 다
upstream daili_server{
server localhost:8080 weight=10; #服务器IP或域名
server localhost:8081 weight=2; #服务器IP或域名
}
server {
listen 80;
listen [::]:80;
server_name localhost;
location / {
proxy_pass http://daili_server/; #负载均衡
}
}
ip_hash
upstream daili_server{
ip_hash;
server localhost:8080; #服务器IP或域名
server localhost:8081; #服务器IP或域名
}
server {
listen 80;
listen [::]:80;
server_name localhost;
location / {
proxy_pass http://daili_server/; #负载均衡
}
}
Nginx 동정 분리
사용자 가 정적 코드 에 접근 하 는 속 도 를 높이 고 배경 응용 프로그램 에 대한 접근 을 낮 춥 니 다. 저 희 는 정적 자원 을 nginx 에 넣 고 동적 자원 을 tomcat 서버 에 전송 하 는 Nginx 의 병행 능력 공식: workerprocesses * worker_connections/4 | 2 = Nginx 최종 병행 능력 동적 자원 필요/4, 정적 자원 필요/2
동적 자원 에이전트
location / {
proxy_pass 路径;
}
정적 자원 에이전트
location / {
root 静态资源路径;
index 默认访问路径下的什么资源;
autoindex on;#可以不写,写了则代表展示静态资源的全部内容,以列表的形式展开
}
확장 내용 (nginx 군집)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.