nginx各种代理配置大全

 更新时间:2023年09月28日 11:09:09   作者:bacawa  
本文主要介绍了nginx各种代理配置大全,主要包括了路径配置,http跳转https,微信支付的校验等,具有一定的参考价值,感兴趣的可以了解一下

以下展示不同情况下的配置:location路径、root路径、alias路径、proxy_pass代理路径。
通过这几个配置路径地址对比,建议location后面都带上斜杠。

1. 基础配置说明

# 进程数量
worker_processes 1;
events {
  # 最大连接数量
  worker_connections 1024;
}
http {
  include mime.types;
  default_type application/octet-stream;
  sendfile on;
  keepalive_timeout 65;

2. 演示如何强制http跳转https

server {
  listen 80;
  server_name test.com;
  # http强制跳转到https
  rewrite ^(.*)$ https://$server_name$1 permanent;
}

3. 演示如何配置微信支付的校验文件

server {
  listen 80;
  server_name localhost;
  # 默认根路径
  location / {
    root index.html;
  }
  # 微信支付校验文件,可以直接配置访问名称
  location ^~/MP_verify_2g3uEjrB5B2LIbNl.txt {
    alias /home/MP_verify_2g3uEjrB5B2LIbNl.txt;
  }
  # 微信支付校验文件,也可以通过正则配置
  location ~^/MP_verify_[a-zA-Z0-9]*\.(txt)$ {
    root /home/;
    rewrite ^/home/(.txt)$ /home/$1 last;
  }
}

4. 演示root和alias两种配置静态资源的区别

server {
  listen 80;
  server_name localhost;
  # 用root方式,location中的路径会拼加到root的地址后面
  # 请求路径为:http://localhost:8080/files/index.jpg    实际访问为:/home/files/index.jpg
  location ~^/files/ {
    root /home/;
    index index.html index.htm;
  }
  # 用alias方式,location中的路径不会拼加到alias的地址后面
  # 这请求路径为:http://localhost:8080/files/index.jpg    实际访问为:/home/index.jpg
  location ~^/files/ {
    alias /home/;
    index index.html index.htm;
  }
}

5.演示请求后台接口代理配置

server {
  listen 8080;
  server_name localhost;
  #################### 第一种场景(代理地址不加斜杠) ####################
  # 请求路径为:http://127.0.0.1:8080/api/getUser   实际代理为:http://127.0.0.1:8000/api/getUser
  location ^~/api/ {
    proxy_pass http://127.0.0.1:8000;
    proxy_set_header Host $http_host; #后台可以获取到完整的ip+端口号
    proxy_set_header X-Real-IP $remote_addr; #后台可以获取到用户访问的真实ip地址
  }
  # 请求路径为:http://127.0.0.1:8080/api/getUser   实际指向为:http://127.0.0.1:8000/api/getUser
  location ^~/api {
    proxy_pass http://127.0.0.1:8000;
    proxy_set_header Host $http_host; #后台可以获取到完整的ip+端口号
    proxy_set_header X-Real-IP $remote_addr; #后台可以获取到用户访问的真实ip地址
  }
  #################### 第二种场景(代理地址+斜杠) ####################
  # 请求路径为:http://127.0.0.1:8080/api/getUser   实际代理为:http://127.0.0.1:8000/getUser
  location ^~/api/ {
    proxy_pass http://127.0.0.1:8000/;
    proxy_set_header Host $http_host; #后台可以获取到完整的ip+端口号
    proxy_set_header X-Real-IP $remote_addr; #后台可以获取到用户访问的真实ip地址
  }
  # 请求路径为:http://127.0.0.1:8080/api/getUser   实际代理为:http://127.0.0.1:8000//getUser
  location ^~/api {
    proxy_pass http://127.0.0.1:8000/;
    proxy_set_header Host $http_host; #后台可以获取到完整的ip+端口号
    proxy_set_header X-Real-IP $remote_addr; #后台可以获取到用户访问的真实ip地址
  }
  #################### 第三种场景(代理地址+后缀) ####################
  # 请求路径为:http://127.0.0.1:8080/api/getUser   实际代理为:http://127.0.0.1:8000/user/getUser
  location ^~/api {
    proxy_pass http://127.0.0.1:8000/user;
    proxy_set_header Host $http_host; #后台可以获取到完整的ip+端口号
    proxy_set_header X-Real-IP $remote_addr; #后台可以获取到用户访问的真实ip地址
  }
  # 请求路径为:http://127.0.0.1:8080/api/getUser   实际代理为:http://127.0.0.1:8000/usergetUser
  location ^~/api/ {
    proxy_pass http://127.0.0.1:8000/user;
    proxy_set_header Host $http_host; #后台可以获取到完整的ip+端口号
    proxy_set_header X-Real-IP $remote_addr; #后台可以获取到用户访问的真实ip地址
  }
  #################### 第四种场景(代理地址+后缀+斜杠) ####################
  # 请求路径为:http://127.0.0.1:8080/api/getUser   实际代理为:http://127.0.0.1:8000/user/getUser
  location ^~/api/ {
    proxy_pass http://127.0.0.1:8000/user/;
    proxy_set_header Host $http_host; #后台可以获取到完整的ip+端口号
    proxy_set_header X-Real-IP $remote_addr; #后台可以获取到用户访问的真实ip地址
  }
  # 请求路径为:http://127.0.0.1:8080/api/getUser   实际代理为:http://127.0.0.1:8000/user//getUser
  location ^~/api {
    proxy_pass http://127.0.0.1:8000/user/;
    proxy_set_header Host $http_host; #后台可以获取到完整的ip+端口号
    proxy_set_header X-Real-IP $remote_addr; #后台可以获取到用户访问的真实ip地址
  }
}

6.演示前端项目如何部署nginx

server {
  listen 8090;
  server_name localhost;
  # 默认访问
  # 部署路径:/home/web/my_demo
  # 访问路径为:http://localhost:8090/
  location / {
    try_files $uri $uri/ /index.html;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $http_host;
    root /home/web/my_demo/;
    index index.html index.htm;
  }
  # 带前缀的访问
  # 部署路径:/home/web/my_demo
  # 访问路径为:http://localhost:8090/my_demo/
  # 如果location路径最后没有配置斜杠,则浏览器输入访问地址后,路径最后会自动拼一个斜杠
  location ^~/my_demo/ {
    try_files $uri $uri/ /my_demo/index.html;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $http_host;
    root /home/web/;
    index index.html index.htm;
  }
}
}

 到此这篇关于nginx各种代理配置大全的文章就介绍到这了,更多相关nginx 代理配置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Nginx源码安装的方法步骤

    Nginx源码安装的方法步骤

    这篇文章主要介绍了Nginx源码安装的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • linux下Nginx+Tomcat负载均衡配置方法

    linux下Nginx+Tomcat负载均衡配置方法

    这篇文章主要介绍了linux下Nginx+Tomcat负载均衡配置方法,需要的朋友可以参考下
    2016-09-09
  • Nginx安装及配置详细分析

    Nginx安装及配置详细分析

    这篇文章主要介绍了Nginx在各种系统和环境中的安装及配置详细分析。
    2017-11-11
  • 教你快速构建一个基于nginx的web集群项目

    教你快速构建一个基于nginx的web集群项目

    本文教你快速构建一个基于nginx的4/7层负载均衡的web集群项目,项目步骤本文给大家介绍介绍,对nginx web集群项目感兴趣的朋友一起看看吧
    2021-11-11
  • Nginx实现外网访问内网的步骤详解

    Nginx实现外网访问内网的步骤详解

    外网浏览器与内网是不通的,但是外网与中间过渡服务器是通的,中间过渡服务器与内网服务器是通的,这样在外网访问过渡服务器时,过渡服务器再跳转到后台服务器,本文给大家介绍了Nginx外网访问内网如何实现步骤,需要的朋友可以参考下
    2023-10-10
  • 通过Nginx的proxy_set_header设置请求头无效的解决

    通过Nginx的proxy_set_header设置请求头无效的解决

    这篇文章主要介绍了通过Nginx的proxy_set_header设置请求头无效的解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • Nginx启用GZIP压缩网页传输方法(推荐)

    Nginx启用GZIP压缩网页传输方法(推荐)

    Gzip压缩我很早已经就启用了,不过从未与大家分享过。今天小编给大家分享Nginx启用GZIP压缩网页传输方法,需要的朋友参考下吧
    2017-01-01
  • 如何使用Nginx配置将80端口重定向到443端口

    如何使用Nginx配置将80端口重定向到443端口

    这篇文章主要为大家详细介绍了如何将Nginx配置为将HTTP(80端口)请求重定向到HTTPS(443端口),文中的示例代码讲解详细,有需要的小伙伴可以参考一下
    2025-04-04
  • 解读Nginx和Apache的特点与区别

    解读Nginx和Apache的特点与区别

    这篇文章主要介绍了解读Nginx和Apache的特点与区别,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • nginx日志打印请求头信息示例详解

    nginx日志打印请求头信息示例详解

    这篇文章主要介绍了nginx日志打印请求头信息的相关资料,文章介绍了如何在Nginx中打印请求头中的自定义字段,并解决由于下划线导致的字段无法正确打印的问题,需要的朋友可以参考下
    2024-11-11

最新评论