Nginx基础笔记
Posted 深蓝
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx基础笔记相关的知识,希望对你有一定的参考价值。
一、是什么
nginx是一个高性能的HTTP和反向代理的Web服务器,核心特点是占用内存少,并发能力强。
二、应用场景
HTTP服务器
- 高并发(5W并发连接),高负载,本身低功耗
- 反向代理服务器
- 负载均衡服务器
- 动静分离
三、特点
- 跨平台 -> 大多数类Unix系统,以及Windows
- 上手容易
- 高并发、性能好
- 稳定性好
四、反向代理
1. 正向代理
请求 -> 代理服务器 -> 目标服务器 ,返回的时候原路返回
2. 反向代理
请求 -> Nginx(暴露的ip及端口) -> 真实处理的服务的ip(隐藏)
Nginx反向代理到真实服务提供者,根据负载均衡策略,用户只能看到反向代理服务器Nginx的端口及ip。
五、负载均衡
当请求到来时,分配哪个服务处理请求的过程。为了解决服务高负载的问题。
1. 策略: 轮训(默认)
upstream Servers {
server ip:port;
server ip:port;
}
location /path/ {
proxy_pass http://Servers/;
}
2. 策略: 权重
# 权重越高被分配请求越多
upstream Servers {
server ip:port weight=1;
server ip:port weight=2;
}
3. 基于ip的hash
# 每个请求按照ip的hash分配结果,同意客户端的请求会分到同一服务提供者,可以解决session问题。
upstream Servers {
ip_hash;
server ip:port;
server ip:port;
}
六、动静分离
- 静态资源:html,js,icon等文件交由Nginx路由
动态资源:Servlet,接口 交由服务的Tomcat
# 静态资源 location /static/ { root /app/static/ # 静态资源目录 }
七、命令
./nginx #启动
./nginx -s stop
./nginx -s reload #重新加载配置文件
八、内存模型
- Master进程用于控制woker进程
- worker进程真正负责工作,独立互不影响
九、配置
# 所有配置以 ; 结尾
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 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;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
# 负载均衡
upstream Server {
server 127.0.0.1:8080;
server 127.0.0.1:8081;
}
server {
listen 80; # 监听端口
server_name localhost; #监听ip
#charset koi8-r;
#access_log logs/host.access.log main;
location / { # / 代表默认反向代理的情况#
#root html;
#index index.html index.htm;
# 转发到 127.0.0.1:8080
proxy_pass http://127.0.0.1:8080/;
}
# 根据不同路径转发
# 语法:location [ = | ~ | ~* | ^~ ] /URI { … } https://segmentfault.com/a/1190000022315733
location /path/ {
#root html;
#index index.html index.htm;
# 转发到 127.0.0.1:8081
# proxy_pass http://127.0.0.1:8081/;
# 负载均衡方式
proxy_pass http://Server/;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
以上是关于Nginx基础笔记的主要内容,如果未能解决你的问题,请参考以下文章
Nginx——Nginx启动报错Job for nginx.service failed because the control process exited with error code(代码片段