配置nginx的地址和路径的代理

这篇具有很好参考价值的文章主要介绍了配置nginx的地址和路径的代理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.配置ip地址,为实现负载均衡通过配置upstream将请求进行分发到部署的server节点,可以为server节点配置weight权重,进行节点的流量控制,server 192.168.1.1:8808 weight=2;

http {
    include    mime.types;
    default_type application/octet-stream;
	upstream upstream_name {
        server 192.168.1.1:8808;
		server 192.168.1.2:8808;
	}
	server {
	    listen 80;
		server_name localhost;
		location / {
		    proxy_set_header X-Real-IP $remote_addr;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_set_header Host $http_host;
			proxy_set_header X-Nginx-Proxy true;
			add_header Proxy-Node $upstream_addr;
			add_header Proxy-Status $upstream_status;
			
		    proxy_pass http://upstream_name;
		}
	}
}

若没有部署多个服务器节点,只是简单的做ip地址转发,proxy_pass配置的值直接就是IP地址加端口:proxy_pass http://192.168.1.1:8808;,此时后面是没有路径的,将ip地址和端口做转发,示例:

server {
	listen 80;
	server_name localhost;

	#请求是http://127.0.0.1:80/test/haha/aaa
	#转发到http://192.168.1.1:8808/test/haha/aaa
	location /test/ {
		proxy_pass http://192.168.1.1:8808;
	}
}

2.针对访问路径进行的代理

server
{
    listen 80;
    server_name localhost;
    
    #请求的url过滤,正则匹配,~为区分大小写,~*为不区分大小写。
    #请求是http://127.0.0.1:80/Test/haha/aaa
    #分发到http://127.0.0.1:9501/Api/haha/aaa
	location ~* /test/(.*)$ {
        proxy_pass  http://127.0.0.1:9501/Api/$1?$args;
    }
	
}

#用rewrite来写

server
{
    listen 80;
    server_name localhost;
    location ~* /test {
        rewrite (.+) http://127.0.0.1:9501/Api$1?$args permanent;
    }
}

nginx 配置文件大全文章来源地址https://www.toymoban.com/news/detail-502843.html

$args     # 这个变量等于请求行中的参数。
$binary_remote_addr     # 远程地址的二进制表示
$body_bytes_sent    # 已发送的消息体字节数
$content_length     # 请求头中的Content-length字段
$content_type     # 请求头中的Content-Type字段
$document_uri     # 与$uri相同
$document_root     # 当前请求在root指令中指定的值
$host     # 请求主机头字段,否则为服务器名称
$http_user_agent     # 客户端agent信息
$http_cookie     # 客户端cookie信息
$http_referer    # 引用地址
$http_user_agent    # 客户端代理信息
$http_via    # 最后一个访问服务器的Ip地址
$http_x_forwarded_for    # 相当于网络访问路径
$query_string    # 与$args相同
$request_method     # 客户端请求的动作,通常为GET或POST
$limit_rate     # 这个变量可以限制连接速率          
$request_body_file     # 客户端请求主体信息的临时文件名
$remote_addr     # 客户端的IP地址
$remote_port     # 客户端的端口
$remote_user     # 已经经过Auth Basic Module验证的用户名
$request        # 用户请求
$request_body_file        # 发往后端的本地文件名称
$request_filename        # 当前请求的文件路径,由root或alias指令与URI请求生成
$request_method        # 请求的方法,比如 GET 、POST 等
$request_uri        # 请求的URI,带参数
$query_string     # 与$args相同
$scheme     # HTTP方法(如http,https)
$server_protocol     # 请求使用的协议,通常是HTTP/1.0或HTTP/1.1
$server_addr     # 服务器地址,在完成一次系统调用后可以确定这个值
$server_name     # 服务器名称
$server_port     # 请求到达服务器的端口号
$request_uri     # 包含请求参数的原始URI,不包含主机名,如 /foo/bar.php?arg=baz
$uri     # 不带请求参数的当前URI,$uri不包含主机名,如 /foo/bar.html

到了这里,关于配置nginx的地址和路径的代理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • nginx 和gateway配置实现动静分离和反向代理

    这两个配置文件分别是Nginx和Spring Cloud Gateway的配置文件,它们用于构建网关服务,进行请求的路由和转发。 前端发送请求的时候为了不暴露服务器地址,所以会使用nginx做反向代理的一个主要作用是隐藏后端服务器的真实地址,从而增加网络安全性和隐私。当客户端发送请求

    2024年02月06日
    浏览(35)
  • Docker中的Nginx配置代理实现不同url访问多个vue项目

    本篇文章接上回Docker中的Nginx配置代理实现不同url访问vue和springboot项目-CSDN博客 在上篇已经实现可以访问http://ip/qianduan   到我们的vue项目,但是有个问题就是如果多个vue项目在/assets/ 的静态资源文件夹就无法设置, 我试过在nginx里面使用if,try_files,map等使其根据不同请求的

    2024年03月16日
    浏览(60)
  • Nginx学习1:通过访问路径代理不同二级http服务

    通过nginx实现代理,前端HTML5只需要对接一个http端口,即可与后台多个二级http服务进行对接,方法是在nginx中通过不同的路径代理不同的二级http服务。 静态页面依然使用nginx一级服务器返回。 配置nginx,访问路径为button1时转发到3002端口,访问路径为button2时转发到3003端口。

    2024年02月12日
    浏览(41)
  • Nginx代理后获取客户端真实IP地址

    在项目实际应用中,我们可能会需要获取到用户也就是客户端的真实IP地址,比如记录系统操作日志等情况。 通常情况下我们可以使用以下方式来获取IP地址 但是当我们使用Nginx反向代理项目地址后,使用以上方法只能获取到Nginx服务器的IP地址,并不是客户端的IP地址。 解决

    2023年04月11日
    浏览(46)
  • nginx代理后,nodejs如何获取用户真实ip地址(包括websocket获取用户真实IP地址)

    因为nginx代理的原因,我们在请求头中获取到的用户ip只是nginx代理的ip,并非用户真实ip,原因是经过反向代理后,由于在客户端和web服务器之间增加了中间层,因此web服务器无法直接拿到客户端的ip,可以通过$remote_addr变量拿到的将是反向代理服务器的ip地址。 第一步,修改

    2024年02月13日
    浏览(67)
  • linux环境下docker中搭建 jenkins 及自定义访问路径,利用nginx反向代理

    前两天发布了完整的 linux服务器上Docker中安装jenkins 在实际的开发中,可能我们并不能直接开放8081或者8080端口给jenkins使用,常常是通过nginx方向代理来实现的,这里我们来配置一下。 如果你还没有安装 可以参考我这篇文章 linux服务器上Docker中安装jenkins 看到目录: 创建一个

    2024年02月16日
    浏览(56)
  • nestjs:nginx反向代理服务器后如何获取请求的ip地址

    问题:         如题 参考:         nodejs+nginx获取真实ip-腾讯云开发者社区-腾讯云         「转」从限流谈到伪造 IP nginx remote_addr          解决办法: 1.设置nginx         对于代理部分,对http header添加Host、X-Real-IP、X-Forwarded-For(最重要)          2.nestjs使用

    2024年02月13日
    浏览(56)
  • 微信支付本地调试,nginx反向代理,使用本地回调地址notify_url

    golang的gin框架开发微信小程序后端,使用到微信支付功能。微信支付的回调调试一般都在服务器进行,但是折腾了一下,于是就有了以下记录。 具备的条件: 1.有一个all in one小主机,上面安装了pve虚拟机,虚拟机里安装了openwrt(路由器),ubuntu用来安装数据库、redis、ngin

    2024年02月09日
    浏览(80)
  • Nginx代理nginx.conf配置——nginx对静态文件代理

    如果需要将资源代理到不同的目录下,则在nginx.conf中的server节点下进行如下配置: 修改后,重新加载nginx配置即可,nginx部分命令如下: 在server中添加如下配置(示例listen端口为80) 访问:localhost/video/demo.mp4即可访问

    2024年02月08日
    浏览(54)
  • VUE 配置本地代理、服务器路径

    2024年03月28日
    浏览(90)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包