1. 反向代理的语法
nginx 配置反向代理的上游服务,可以使用三种语法
配置示例:
location / {
proxy_pass http://localhost:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
配置示例:
location / {
fastcgi_pass localhost:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/www/scripts/php$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
}
配置示例
location / {
include uwsgi_params;
uwsgi_pass localhost:9000;
}
1.1 区别
proxy_pass 应用更广泛,支持几乎所有应用 ,
fastcgi_pass 后端只能代理fastcgi服务器应用可运行的语言, (如, php)
uwsgi_pass 后端智能代理uwsgi服务器应用可运行的语言,(如,python )
🎈 proxy_pass支持uri配置,其他两个不支持,如:
proxy_pass http://localhost:8000/proxy;
2. proxy_path 路径后"/"的应用
配置文件如下图,对路径/get 和/gut 分别配置proxy_pass到同一域名,区别是路径/gut 对应proxy_pass 配置url后面加了 "/".
请求匹配后,到代理服务的请求如下:
可以看到/get 路径下配置proxy_pass 没有/结尾, 代理请求使用绝对路径,将原请求中的uri完全代理到后端服务。
而/gut 路径下配置proxy_pass 有/结尾, 代理请求使用相对路径,只有/gut后面的path生效,被代理到后端服务。
另外,proxy_pass 配置中如果包含路径,效果也是相同的,如下图所示: