简介
Nginx是一款轻量级的Web服务器、反向代理服务器,由于它的内存占用少,启动极快,高并发能力强,在互联网项目中广泛应用。
应用场景
负载均衡
轮询
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| upstream test { server 10.200.100.3:8080; server 10.200.100.4:8081; } upstream admin { server 10.200.100.3:9080; server 10.200.100.4:9081; } server { listen 81; server_name localhost; #映射地址 location / { ssi on; ssi_silent_errors on; proxy_read_timeout 300; proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # proxy_pass内容与upstream对应 proxy_pass http://test; proxy_redirect default;
} #映射地址指定多个,根据访问路径匹配不同地址`location` location /admin { ssi on; ssi_silent_errors on; proxy_read_timeout 300; proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # proxy_pass内容与upstream对应 proxy_pass http://admin; proxy_redirect default;
} }
|
设置权重
通过weight指定访问服务器权重,权重越高代表服务器被访问的几率的越大。
1 2 3 4 5
| upstream test { server localhost:8080 weight=9; server localhost:8081 weight=1; }
|
iphash
iphash的每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。(分布式session同步可采用redis解决)
1 2 3 4 5 6
| upstream test { ip_hash; server localhost:8080; server localhost:8081; }
|
反正代理
反向代理隐藏了真实的服务端,例如访问http://www.baidu.com
,可能有成千上万的程序为我们服务。代理对象为服务端。
1 2 3 4 5 6 7 8 9 10
| server { listen 80; server_name localhost; location / { proxy_pass http://10.200.100.2:8080; proxy_set_header Host $host:$server_port; } }
|
正向代理: 它隐藏了真实的请求客户端,服务端不知道真实的客户端是谁,客户端请求的服务都被代理服务器代替来请求.代理对象为客户端。
HTTP服务器
Nginx本身也是一个静态资源的服务器,当只有静态资源的时候,就可以使用Nginx来做服务器。
1 2 3 4 5 6 7 8 9 10 11 12
| server { listen 80; server_name localhost;
location / { #指定静态文件位置 root /opt/dist; #访问首页 index index.html; } }
|
常用操作
解压安装常用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| 查看nginx安装位置: whereis nginx
启动: $ /usr/local/nginx/sbin/nginx
热重启: $ /usr/local/nginx/sbin/nginx –s reload
停止: $ /usr/local/nginx/sbin/nginx –s stop
测试配置文件是否正常: $ /usr/local/nginx/sbin/nginx –t
强制关闭: $ pkill nginx
|
yum安装常用
1 2 3 4 5 6 7
| systemctl enable nginx # 设置开机启动 Nginx systemctl disable nginx # 关闭开机启动 Nginx systemctl start nginx # 启动 Nginx systemctl stop nginx # 停止 Nginx systemctl restart nginx # 重启 Nginx systemctl reload nginx # 重新加载 Nginx systemctl status nginx # 查看 Nginx 运行状态
|