Nginx常用场景


简介

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 运行状态

文章作者: 苏叶新城
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 苏叶新城 !
  目录