1. 反向代理【proxy_pass】
location这一段配置中的root替换成proxy_pass即可。root说明是静态资源,可以由Nginx进行返回;而proxy_pass说明是动态请求,需要进行转发
location /dT0wpHvyP5.txt {
root /www/wwwroot/survey.testech.com;
}
location /gaoApi/ {
proxy_pass https://reapi.map.com/;
}
2. 负载均衡【upstream】
上面的反向代理中,通过proxy_pass来指定Tomcat的地址,很显然我们只能指定一台Tomcat地址,那么我们如果想指定多台来达到负载均衡呢?
第一,通过upstream来定义一组Tomcat,并指定负载策略(IPHASH、加权论调、最少连接),健康检查策略(Nginx可以监控这一组Tomcat的状态)等。
第二,将proxy_pass替换成upstream指定的值即可。
upstream test-api {
least_conn;
server 192.168.20.217:7807 weight=4;
server 192.168.20.218:7807 weight=5;
server 192.168.20.219:7807 weight=6;
keepalive 256;
}
server
{
location / {
proxy_connect_timeout 120s;
proxy_read_timeout 300s;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://test-api;
}
}
nginx总配置
user root;
worker_processes auto;
events {
use epoll;
worker_connections 51200;
multi_accept on;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 8001 default_server;
listen [::]:8001 default_server;
server_name nginx_vue_front;
gzip on;
gzip_min_length 1k;
gzip_comp_level 9;
gzip_types text/plain application/javascript application/x-javascript text/javascript text/xml text/css application/font-sfnt;
gzip_disable "MSIE [1-6]\.";
gzip_vary on;
root /root/ez_scene-huhhot/examples/replace-component/;
location / {
try_files $uri $uri/ /index.html;
}
location ~* ^.+\.(eot|ttf|otf|woff|svg)$ {
access_log off;
add_header Cache-Control max-age=360000;
}
}
}
# 若报错403如下,则ps查看用户信息,发现为nobody,添加user 段在总配置中,重启即可
[root@0002 sbin]# ps -ef | grep nginx
nobody 6623 21267 1 14:29 ? 00:00:00 nginx: worker process
nobody 6624 21267 1 14:29 ? 00:00:00 nginx: worker process
# 报错信息如下
2021/03/17 14:30:48 [crit] 6636#0: *3 stat() "/root/examples/replace-component/index.html" failed (13: Permission denied), client: ::1, server: nginx_vue_front, request: "GET / HTTP/1.1", host: "localhost:8001"