官网
文档网址:https://docs.nginx.com/nginx/admin-guide/
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://127.0.0.1:8080;
index index.html index.htm index.jsp;
}
}
server {
listen 80;
server_name 192.168.1.1;
location / {
proxy_pass http://192.168.1.101:8080;
index index.html index.htm index.jsp;
}
}
该指令用于匹配 URL。
语法 :
location [ = | ~ | ~* | ^~] uri {
}
1、= :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求。
2、~:用于表示 uri 包含正则表达式,并且区分大小写。
3、~*:用于表示 uri 包含正则表达式,并且不区分大小写。
4、^~:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location 块中的正则 uri 和请求字符串做匹配。
注意:如果 uri 包含正则表达式,则必须要有 ~ 或者 ~* 标识。
配置
server {
listen 80;
server_name 192.168.1.1;
location / {
proxy_pass http://192.168.1.101:8080;
index index.html index.htm index.jsp;
}
}
该指令用于设置被代理服务器的地址。可以是主机名称、IP地址加端口号的形式。
proxy_pass http://www.123.com/uri;
该指令用于设置网站的默认首页。后面的文件名称可以有多个,中间用空格隔开。
index filename ...;
index index.html index.jsp;
http{
upstream backend {
server backend1.example.com weight=5;
server backend2.example.com;
server 192.0.0.1 backup;
}
server{
location / {
proxy_pass http://backend;
}
}
NGINX开源支持四种负载平衡方法,而NGINX Plus又增加了两种方法:
https://docs.nginx.com/nginx/admin-guide/load-balancer/http-load-balancer/#weights
Round Robin –请求在服务器之间平均分配,同时考虑了服务器权重。默认情况下使用此方法(没有启用它的指令):
upstram mylb{
#默认Round Robin
server ip:port1
server ip:port2
}
Least Connections -将活动连接最少的请求发送到服务器,再次考虑服务器权重:
upstream backend {
least_conn;
server backend1.example.com weight=5;
server backend2.example.com;
}
IP哈希 -从客户端IP地址确定向其发送请求的服务器。在这种情况下,可以使用IPv4地址的前三个八位位组或整个IPv6地址来计算哈希值。该方法保证了来自同一地址的请求将到达同一服务器,除非它不可用。
upstream backend {
ip_hash;
server backend1.example.com;
server backend2.example.com;
}
如果其中一台服务器需要暂时从负载平衡循环中删除,则可以使用down
参数对其进行标记,以保留客户端IP地址的当前哈希值。该服务器要处理的请求将自动发送到组中的下一个服务器:
upstream backend {
server backend1.example.com;
server backend2.example.com;
server backend3.example.com down;
}
Generic Hash–向其发送请求的服务器是根据用户定义的键确定的,该键可以是文本字符串,变量或组合。例如,密钥可以是成对的源IP地址和端口,或者是本示例中的URI:
upstream backend {
hash $request_uri consistent;
server backend1.example.com;
server backend2.example.com;
}
Least Time (仅NGINX Plus)–对于每个请求,NGINX Plus选择具有最低平均延迟和最低活动连接数的服务器,其中最低平均延迟是根据包含在指令中以下参数中的哪个来计算的least_time
:
header
–从服务器接收第一个字节的时间last_byte
–是时候从服务器接收完整响应了last_byte inflight
–考虑到请求不完整的时间,可以从服务器接收完整的响应upstream backend {
least_time header;
server backend1.example.com;
server backend2.example.com;
}
随机 –每个请求将传递到随机选择的服务器。如果two
指定了参数,首先,NGINX考虑服务器权重随机选择两个服务器,然后使用指定的方法选择这些服务器之一:
least_conn
–活动连接最少least_time=header
(NGINX Plus)–从服务器接收响应标头的最短平均时间($upstream_header_time
)least_time=last_byte
(NGINX Plus)–从服务器接收完整响应的最短平均时间($upstream_response_time
)upstream backend {
random two least_time=last_byte;
server backend1.example.com;
server backend2.example.com;
server backend3.example.com;
server backend4.example.com;
}
location /访问静态资源文件夹/{
root 静态资源路径上级目录
}
location /resources/ {
root /resources_parent/
}
location /img/ {
root /static/
autoindex on #访问根目录时列出所有文件
}
设置ngnix主从配置
启动 start nginx
nginx -s
where
can be one of the following:
quit
– Shut down gracefully (the SIGQUIT
signal)reload
– Reload the configuration file (the SIGHUP
signal)reopen
– Reopen log files (the SIGUSR1
signal)stop
– Shut down immediately (or fast shutdown, the SIGTERM
singal)将vue打包后的项目使用nginx进行访问
server {
listen 8088;
server_name localhost;
location / {
root D:/webui/dist;
autoindex on;
index index.html index.htm;
}
location /api {
proxy_pass http://localhost:8080/api;
}
}
启动后访问地址:http://localhost:8088/