nginx转发http,websocket,https请求配置

09-HTTP-Request请求转发步骤和特点 在Java Web开发中,请求转发是指将一个HTTP请求从当前服务端资源发送到其他服务端资源进行处理的过程。请求转发的主要作用是实现Web应用程序内不同资源之间的数据共享和流程控制。通常情况下,请求转发是在服务器内部完成的,转发过程中客户端浏览器感知不到。因此,对于客户端而言,请求转发就好像是直接在当前服务端资源中处理请求一样,而不会意识到请求已经被转发到其他服务端资源进行处理。 阅读详情

一,转发http请求,编辑nginx配置文件nginx.conf,ubuntu一般在/ect/nginx/目录

       在nginx.conf的http模块加入:

upstream svr_login {
        server xxx.xxx.xxx.xxx:port;        #转发目的地址与端口,可以配置多个
}
server {
        listen 8800;        #本机监听端口
        server_name localhost;
        location ~*^.+$ {
            proxy_pass http://svr_login;        #svr_login即上面定义,名字自己定义,对应即可
            proxy_set_header X-Real-IP $remote_addr;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_set_header Host $host;
        }
}

/*
当Nginx设置X-Forwarded-For于$proxy_add_x_forwarded_for后会有两种情况发生:

1、如果从CDN过来的请求没有设置X-Forwarded-For头(通常这种事情不会发生),而到了我们这里Nginx设置将其设置为$proxy_add_x_forwarded_for的话,X-Forwarded-For的信息应该为CDN的IP,因为相对于Nginx负载均衡来说客户端即为CDN,这样的话,后端的web程序时死活也获得不了真实用户的IP的。

2、CDN设置了X-Forwarded-For,我们这里又设置了一次,且值为$proxy_add_x_forwarded_for的话,那么X-Forwarded-For的内容变成 ”客户端IP,Nginx负载均衡服务器IP“如果是这种情况的话,那后端的程序通过X-Forwarded-For获得客户端IP,则取逗号分隔的第一项即可。
*/

二,转发websocket请求,也是在nginx.conf的http模块加入:   

    upstream ws_game {
        server xxx.xxx.xxx.xxx:port;        #转发目的地址与端口
    }

    server {
        listen 8301;                                #本机监听端口
        server_name localhost;
        location / {                                   #匹配协议用/,有人使用/ws或/websocket,试了不成功
            proxy_pass http://ws_game;#转发目标
            proxy_redirect off;      
            proxy_set_header Host $host;
            proxy_set_header X-Real_IP $remote_addr;
            proxy_set_header X-Forwarded-For $remote_addr:$remote_port;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;   
            proxy_set_header Connection upgrade;
        }
    }

编辑好后

重加载配置:nginx -s reload

重启:nginx -s reopen

三,这里额外加个配置https说明,也是在nginx.conf的http模块加入:   



    # HTTPS server
	#
	server {
            # https监听端口,默认433,但如果是自己的个人主机,电信会封此端口,所以可以用其它端口,注意不要用被占用的端口
        	listen 6001 ssl;
            # 请填写绑定证书的域名
        	server_name tt.gz-cube.com;
            #请填写证书文件的相对路径或绝对路径
        	ssl_certificate /etc/nginx/sslkey/xxx.pem; #这里是ssl key文件存放的绝对路径,根据自己的文件名称和路径来写
        	ssl_certificate_key /etc/nginx/sslkey/xxx.key; #这里是ssl key文件存放的绝对路径,根据自己的文件名称和路径来写

        	ssl_session_cache shared:SSL:1m;
        	ssl_session_timeout 5m;
		
        	ssl_ciphers HIGH:!aNULL:!MD5;
        	ssl_prefer_server_ciphers on;

        	location / {
                    # 如果此服务是作转发用,配置转发地址,下面的网站主面路径就不要
                	#proxy_pass http://localhost:8080/;
                    
                    # 网站主页路径
                	root html;
                	index index.html index.htm;
        	}
	}

如果要监听/转发多个https端口请求,可以配置多个https server

Nginx 如何处理 WebSocket 连接? WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。与传统的 HTTP 请求/响应模式不同,WebSocket 连接一旦建立,客户端和服务器之间就可以随时相互发送数据,无需再像 HTTP 那样每次都重新建立连接。这就好比是从写信交流变成了打电话交流,实时性大大提高。想象一下,你和朋友在玩一个需要紧密配合的游戏,每次通过 HTTP 就像是你要先给朋友写信告诉他你的操作,然后等他回信告诉你他的操作,这中间的等待时间可能会让游戏变得索然无味。 阅读详情

相关推荐

Nginx 如何处理请求的跨协议转发

想象一下,您有一个网站,一部分用户通过 HTTP 协议访问,而另一部分用户则通过 HTTPS 协议访问。又或者,您的应用需要将来自 WebSocket 协议的请求转发到其他后端服务。这时候,就需要 Nginx 来施展魔法,将这些不同协议的请求准确无误地转发到合适的目的地,这就是请求的跨协议转发。用一个生活中的例子来类比,这就像是一个快递中转站,无论包裹是从陆运、海运还是空运过来的,都要被准确地分拣并发送到正确的配送路线上。

2401_86074221的博客 1406

Nginx接收Http协议请求转发使用Https协议

公司使用阿里的apigateway,规定不太友好,同是SIT环境,A系统的SIT1环境居然不能调用B系统的SIT2环境的接口。因为各个系统之间部署的SIT环境数量不同A系统可能只有1套,B系统可能有8套,这样的话,可能会随时切换调用B系统的环境,管理员不允许,于是想着用Nginx做下转发。因为A系统调用B系统是内部调用,不计划使用HTTPS,因为还要去申请证书,但是B系统调用入口必须使用HTTPS,这样就要求Nginx可以接收HTTP协议的请求转发出去的协议是HTTPS

BLF2 5822

nginx配置websockethttps转发教程

nginx配置http,https,ssl,websocket转发

renkai721的专栏 9537

Nginx转发https

nginx

qq_17843051的博客 1万+

Nginx转发websocket请求

新项目需要用到websocket进行通讯,有一个问题就是脚手架提供的websocket通讯是走ws协议的也就是http,因此需要用nginx转发https请求。ps: 我们用的spring-websocket好像websocket可以支持配置一些证书的信息,没办法着急提测太懒了,回头再研究下补上。没啥好说的,固定路径转发http请求,直接上配置

weixin_40586595的博客 1306

ubuntu20.04 使用nginx代理http转发https及微信小程序ws转发wss请求连接webSocket

ubuntu20.04 使用nginx代理https转发http及微信小程序wss转发ws请求连接webSocket 最近开发小程序使用到websocket连接,发现部署发布上线后ws连接方式不行,不想修改原有代码,所以使用了Nginx做了代理转发,将wss请求转发为ws的方式连接 小程序上线后访问的方式必须为https和wss: 使用https或wss必须要求: 域名备案 使用证书ssl 1.安装Nigix 安装教程:https://blog.csdn.net/qq_43030934/article/

Mr_WoLong 2376

Nginx转发https访问的实现

1.弯路:Tomcat支持SSL 腾讯云Tomcat服务器证书配置 修改server.xml文件 keystoreType="JKS":请注意该配置跟阿里云的不一样,记得修改 服务器启动完毕之后443端口也被占用了,真的好坑好坑,如果不需要转发的时候,可以使用改配置。 启动nginx 不成功bind() to 0.0.0.0:443 failed (10013: An attempt was made to access a socket in a way for

qf2019的博客 9902

Nginx配置转发ws协议

【代码】Nginx配置转发ws协议。

JavaSE_991226的博客 2831

nginx配置

nginx配置前后端分离项目通过nginx指向前端dist目录HTTPHTTPSwebsocket支持https配置 前后端分离项目 通过nginx指向前端dist目录 server { listen 8080; #监听的端口 server_name localhost; #域名 location / { root /root/mhsp/dist; #前端dist资源目录 index index.html index.html } location ~ (^/api/v|^/cas

YangChingyuk的博客 6656

nginx websocket 代理配置

NGINX Open Source and NGINX Plus by default use HTTP/1.0 for upstream connections. To be proxied correctly, WebSocket connections require HTTP/1.1 along with some other configuration directives that set HTTP headers: In the ‘http’ block map $http_upgrade $

你我无缘,全靠BUG 3062

nginx 导致websocket无法连接的解决办法

WebSocket应用的地址。答:在config配置文件中。

WenZhengshi的博客 2083

nginx ssl域名配置

http请求自动转发 server { listen 80; #监听端口 server_name a.domain.com b.domain.com c.domain.com; #请求域名 return 301 https://$host$request_uri; #重定向至https访问。 } SSL配置(同时web...

qq_31275085的博客 599

nginx根据域名转发请求,发布主页服务,反向代理负载均衡

server { listen 443 ssl; listen [::]:443 ssl; include snippets/ssl.conf; include snippets/ssl-params.conf; server_name id24.com www.id24.com; location / { proxy_pass http://localhost:9090; proxy_http_version 1.1;

m0_49194578的博客 594

阿里云k8s nginx配置转发pod服务

阿里云k8s nginx配置转发pod服务

xiaogg3678的专栏 1394

终极指南:3步解决JumpServer堡垒机WebSocket连接失败问题

JumpServer作为广受欢迎的开源堡垒机,在HTTPS环境下部署时,部分用户会遇到"WebSocket connect failed, please check network"的错误提示。这种WebSocket连接失败问题直接影响远程会话的实时性和用户体验,是堡垒机部署中常见的技术挑战。本文将深入分析JumpServer堡垒机WebSocket连接问题的根本原因,并提供完整的解决方案。 J

gitblog_00551的博客 279

rancher使用nginxhttps代理到https

ranhcer是通过docker部署的,rancher的内网地址是一个https地址,上面的配置是将https请求转发rancher的,具体为:https://rancher.XXXX.com代理到。rancher地址:https://10.173.113.42:8443。https://10.173.113.42:8443中.域名:https://rancher.XXXX.com。是对web socket进行转发

xunianchong的专栏 756

Nginx反向代理配置HTTPS转发HTTP的完整指南与错误排查

反向代理是Web架构中的核心组件,它作为客户端与后端服务器之间的中介,负责请求转发、负载均衡和安全隔离。其工作原理是接收客户端请求,并根据配置规则将其代理到指定的上游服务器,再将响应返回给客户端。这项技术的核心价值在于解耦客户端与后端,提升系统的可扩展性、安全性和可维护性。在微服务、前后端分离等现代架构中,反向代理的应用场景极为广泛,例如作为API网关统一入口,或处理静态资源以提升性能。本文聚焦于一个具体且常见的工程实践:使用Nginx配置反向代理,将前端的HTTPS请求安全地转发至仅支持HTTP的后端服

weixin_32612263的博客 234

Nginx 代理

参考参考。

weixin_53607765的博客 1629
上一篇: 通过shell脚本执行远程命令
下一篇: apache2添加网页访问密码
zccen
博客等级 码龄16年 1115粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值