nginx各种代理配置
记录nginx不同访问路径和代理的配置,注意有加斜杠和不加的区别
以下展示不同情况下的配置:location路径、root路径、alias路径、proxy_pass代理路径。
通过这几个配置路径地址对比,建议location后面都带上斜杠。
# 进程数量
worker_processes 1;
events {
# 最大连接数量
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
# 演示如何强制http跳转https
server {
listen 80;
server_name test.com;
# http强制跳转到https
rewrite ^(.*)$ https://$server_name$1 permanent;
}
# 演示如何配置微信支付的校验文件
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;
}
}
# 演示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;
}
}
# 演示请求后台接口代理配置
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地址
}
}
# 演示前端项目如何部署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;
}
}
}
被 1 篇内容引用
1.6k 声望
2.1k 粉丝
推荐阅读
js常用方法整理
1、实现全屏 {代码...} 2、退出全屏 {代码...} 3、页面打印 {代码...} 4、打印内容样式更改 {代码...} 5、阻止关闭事件 {代码...} 6、屏幕录制 {代码...} 7、判断横竖屏 {代码...} 8、横竖屏样式变更 {代码...} 9...
墨城赞 8阅读 486
Nginx常用配置及和基本功能讲解 | 京东云技术团队
作者:京东物流 殷世杰Nginx已经广泛应用于J-one和Jdos的环境部署上,本文对Nginx的常用的配置和基本功能进行讲解,适合Nginx入门学习。1 核心配置找到Nginx安装目录下的conf目录下nginx.conf文件,Nginx的基本功...
京东云开发者赞 5阅读 580
有了 NGINX 和 Kong,为什么还需要 Apache APISIX?
2021 年 5 月,云原生社区技术沙龙·广州站,API7.ai(支流科技)联合创始人 & CTO,Apache APISIX PMC 王院生在活动上做了《有了 NGINX 和 Kong,为什么还需要 Apache APISIX》的分享,以下是现场分享的文字版。...
API7_技术团队赞 1阅读 4.4k
反向代理学习笔记(一) Nginx与反向代理绪论
作为一个沪漂程序员,听到代理这个词,我下意识的想到了中介,现在在上海已经很少能找到房东看房子了,基本上都是从中介那里看房,从这个角度来说中介代理了房东的部分职责,带你看房。在汉语词典中也是这么阐释...
北冥有只鱼赞 2阅读 1k
vue项目部署到阿里云服务器(windows - Nginx代理)
项目构成:前端:vue+vant-ui,数据库:mysql,后端:node.js部署方式:nginx代理一,首先要拥有自己的服务器,阿里,腾讯都可以,我用的是阿里的购买方式省略...购买完成后,会跳到实例界面,也就是你的服务器实...
墨城赞 2阅读 761
前端跨域问题解决办法, Nginx配置为例
💡 Tips:可以将多个系统融合成一个系统,无技术壁垒,可以像iframe一样实现功能组合● qiankun (阿里支持)● micro-app (京东支持)● wujie (腾讯支持)本人推荐● lingjie 携程支持(团队已跑路)
smallStone赞 3阅读 1.4k评论 3
(学习到实践)七、mongodb测试,php+nginx负载均衡的部署
从测试容器中匹配搜索得到 mongod.conf.orig,设置可以启动,网上查找配置项反不能启动,原因是配置是yaml格式!好像听说过。百度查询得到:官方配置说明,网站卡得出奇。
沧浪水阅读 2.9k
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。