Nginx 配置和常用命令
本文最后更新于:2023年7月12日 晚上
Nginx 是一款轻量级的 Web 服务器,主打的功能是反向代理。在前后端分离开发为常态的今天,它也经常被用于部署前端项目。
Nginx 配置和常用命令
这几个 Nginx 命令对于入门来说足够了:
- 启动 nginx:
nginx
- 关闭 nginx:
nginx -s stop
- 热重载配置文件:
nginx -s reload
- 检查配置文件正确性:
nginx -t
Nginx 配置
Nginx 的配置文件位于nginx/conf/nginx.conf
中,使用 vim 打开后如下:
1 |
|
我们要做的大部分修改都在 http 块之内。
1. 配置反向代理
反向代理就是用 nginx 来代理我们的服务器,我们所有的请求都发到 nginx,然后由 nginx 来转发到它所代理的服务器。要配置反向代理,我们需要在 http 块中添加一个 server 块,设置它监听的端口,然后在 location 块中设置要转发的具体服务器。
1 |
|
假设 nginx 服务器的 IP 是 192.168.19.100
,在完成上述配置后,我们访问 192.168.19.100:8082
时,请求就会由 nginx 转发到 192.168.19.101:8080
中。
2. 配置负载均衡
负载均衡其实也就是反向代理。通过反向代理,将请求分散到各台服务器,就实现了负载均衡,避免了大量请求压到一台服务器上造成的隐患。配置负载均衡,也只需要增加 server 块的内容。
1 |
|
我们在 http 全局快中,配置了upstream targetserver
,这一步的作用是将发送给 nginx 服务器 8888 端口的请求,分散到 targerserver
块中的服务器。默认的分配算法是轮询,也就是每台服务器轮流分配请求。还有一下这些算法:
weight:加权轮询算法。和轮询类似,只是权值大的服务器,分配的请求更多
1
2
3
4upstream bakend {
server 192.168.0.1 weight=10; # 这台服务器将收到大致两倍于下面服务器的请求
server 192.168.0.2 weight=5;
}ip_hash:ip hash算法,按照访问者的 ip hash 值进行分配服务器,这样使同一个 ip 访问到一台固定的服务器,避免了 session 丢失的问题
1
2
3
4
5upstream bakend {
ip_hash;
server 192.168.0.1:88;
server 192.168.0.2:80;
}fair:最快响应,响应时间越快的服务器收到的请求越多
1
2
3
4
5
6upstream fontech {
server 192.168.0.1;
server 192.168.0.2;
server 192.168.0.3;
fair;
}url_hash,通过 url hash 值分配服务器,相同的 url 可以被固定到某台服务器上
1
2
3
4
5
6upstream fontech {
hash $request_uri;
server 192.168.0.1;
server 192.168.0.2;
server 192.168.0.3;
}less_conn:最少连接算法,连接最少的服务器优先分配请求
1
2
3
4
5upstream bakend{
least_conn;
server localhost:10001 weight=1;
server localhost:10002 weight=2;
}