100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > Nginx 反向代理(http转htpps 并支持80端口继续提交post请求)

Nginx 反向代理(http转htpps 并支持80端口继续提交post请求)

时间:2021-10-04 00:10:13

相关推荐

Nginx 反向代理(http转htpps 并支持80端口继续提交post请求)

项目是一个web server + 多个client的形式,client由用户安装在自己的电脑上

由http升级为https后,我们通过在Nginx做了80端口重定向443的配置,使用户通过访问http:服务器时转为https:

基于这样的需求我们在做了如下配置:

server {listen 443;server_name oss-; # 项目域名ssl on;ssl_certificate xxxx.crt; #(证书公钥)ssl_certificate_key xxxx.key; #(证书私钥)ssl_session_timeout 5m;ssl_protocols SSLv2 SSLv3 TLSv1;ssl_ciphers HIGH:!aNULL:!MD5;ssl_prefer_server_ciphers on;location / {proxy_passhttp://xxx.xxx.xxx.xxx:8000; # 后台服务 地址 }}server {listen 80;server_name xxx.;# 域名# to httpsreturn 301 https://$server_name$request_uri;

}

以上配置可满足http 转 https需求,

可以看到当用户不指定https协议时发起请求时,nginx已经通过重定向指向了https

但是之前安装的client还是在向http发送post请求,此时就会出错,因为上面的nginx重定向会丢失post参数,转为get请求,而此api只接受post方式

解决方式 重定向于代理方式共存:

修改nginx配置 server 80部分:

server {listen 80;server_name xxx.;# 域名if ($request_method ~* GET) {# 如果是是GET请求,直接重定向httpsreturn 301 https://$server_name$request_uri;}

# 否则就会直接请求后台服务器

location / {proxy_passhttp://xxx.xxx.xxx.xxx:8000; # 后台服务 地址}

}

至此,同时满足以上两种需求

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。