nginx反向代理多个域名,Nginx的反向代理跨域

阅读(100)发布于 2023-07-10

阿里云oss上传服务 nginx 反向代理 需要配置两个域名 nginx配置如下 如果报错405可能是代理的类型出问题了location~.*.$ Nginx的反向代理跨域 1、使用nginx反向代理解决跨域问题。

配图

这样的用法,当然只能到第一个的,要这样用

在http节点中加入这个,server的具体值你自已改

upstreamcjdby{

serverpigoss;

servertianyuan;

}

在server节点中,只保留一下location,然后把proxy_pass改成这样

proxy_passhttp://cjdby;

其它的set_header不变

这个问题源于我想在服务器上部署博客的前端项目,打算用Nginx来部署前端服务,但是我的443端口已经提供给了微信小程序的服务。

微信小程序要求正式环境的请求必须采用域名,并且是https服务,肯定是无法修改的,博客的前端项目虽然可以用80端口,但是浏览器会一直提示“不安全”,看起来也很不好。

我的CA证书已经被我放在了和小程序服务在一起的/home路径下,找到/etc/nginx/nginx.conf文件,根据它的提示添加如下修改配置文件

这里我为了先验证配置是否生效,已经停止了node服务,使用nginx-sreload重新载入配置文件,打开浏览器验证,成功访问到服务。

这时候启动node服务,不出意外的因为443端口被占用而出错。

虽然公司的前端项目基本都使用反向代理,但是自己还是第一次尝试,上网搜了一下资料,竟然很简单,不过要注意的是location的配置是真的很绕。

我这里首先将node服务的端口更改为7001并重新启动,用域名+端口访问成功。继续修改/etc/nginx/nginx.conf文件,在原有的location下新增一条

使用nginx-sreload重新载入配置文件,打开浏览器输入域名/miniprogram成功访问到小程序服务,接下来只需要统一修改小程序的请求前缀为/miniprogram就可以了,而博客项目,仍然可以通过域名直接访问。

在自己尝试配置反向代理后发现了location之后加不加/以及代理地址后加不加/会造成最后转发的结果天差地别,所以整理一下方便自己以后查阅。

假设:Nginx服务器地址为1.1.1.1,需要转发到2.2.2.2

发送请求:1.1.1.1/foo/api

假设:Nginx服务器地址为1.1.1.1,需要转发到2.2.2.2

发送请求:1.1.1.1/foo/api

这里的表格一开始真的也是看的我一头雾水,但是看了别人的分析后觉得豁然开朗。

nginx配置如下

如果报错405可能是代理的类型出问题了location~.*.(gif|jpg|jpeg|png|bmp|swf)$

1、使用nginx反向代理解决跨域问题。网站前端访问nginx服务的地址,nginx设置代理地址为访问第三方api地址,当访问代理地址的时候,浏览器访问的是nginx服务的地址,实际是访问第三方api地址。

2、Nginx反向代理解决跨域:nginx通过反向代理解决跨域也是利用了服务器请求服务器不受浏览器同源策略的限制实现的。

3、使用Nginx反向代理:通过配置Nginx反向代理,来实现跨域请求。

4、nginx是一个高性能的HTTP和反向代理web服务器,nginx用来解决跨域问题的原理与前端非正统解决方式的proxy的思路是一致的。

5、nginx环境配置我这里就不详细说明了上章节有介绍,我这里就直接上正菜了,简单介绍下conf文件配置。

6、正向代理用途:访问原来无法访问的资源,如Google。可以做缓存,加速访问资源。对客户端访问授权,上网进行认证。代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息。

以上就是关于nginx反向代理多个域名的解答,如果对你有帮助,不妨关注本站,本站将为你整理更多内容。