Nginx(五) 反向代理

逆流者 2020年01月14日 67次浏览

配置实例1

server {
        listen       80; # 监听80端口
        server_name  example.com www.example.com; # 域名

        location / {
            proxy_pass	http://127.0.0.1:8080; # 被代理的实体
            index  index.html index.htm;
        }
}

本机测试可修改hosts文件修改域名

配置实例2

根据访问的路径跳转到不同端口的服务
nginx 监听端口为 80,
访问 http://example.com/test1/ 直接跳转到 127.0.0.1:8081
访问 http://example.com/test2/ 直接跳转到 127.0.0.1:8082

server {
        listen       80; # 监听80端口
        server_name  example.com www.example.com; # 域名

        location ~ /test1/ {
            proxy_pass	http://127.0.0.1:8081; # 被代理的实体
        }
	location ~ /test2/ {
            proxy_pass	http://127.0.0.1:8082; # 被代理的实体
        }
}

location 指令说明

该指令用于匹配 URL。
语法如下:

  • = :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求。
  • ~:用于表示 uri 包含正则表达式,区分大小写。
  • ~*:用于表示 uri 包含正则表达式,不区分大小写。
  • ^~:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location 块中的正则 uri 和请求字符串做匹配。

注意:如果 uri 包含正则表达式,则必须要有 ~ 或者 ~* 标识。