nginx反向代理配置多域名多端口ssl
nginx反向代理配置多域名多端口ssl
如题,我使用的环境是centos7.5,nginx/1.16.1,tomcat9。目前我搭配的是一个给tomcat使用的域名配ssl,一个是给node使用的域名配ssl,使用的是两个不同的端口。 至于安装nginx和tomcat、node的安装还有申请证书之类的我这里就不说了。
1.修改tomcat配置
如图,修改端口号,我这里是改为3003,注意,必须加上打红框的参数 proxyPort=“443”,当然也要加上redirectPort=“443”。
在Host的Valve里面加上红框里的内容
remoteIpHeader=“x-forwarded-for”
remoteIpProxiesHeader=“x-forwarded-by”
protocolHeader="x-forwarded-proto"
好了,tomcat就该这些就可以了,简单吧。其他就不用动了。
配置nginx.conf
配置80端口监听并转换成https
为了可以使所以的域名都能直接访问,而不需要加端口,所以使用nginx监听80端口,如图
以此类推,有多少个域名可以配多少个server来监听80端口,然后把域名转成https就行了。
接下来就是配置反向代理
首先配node程序的ssl,我的node此次使用的是3000端口
注意,域名要上下保持一致,一定要确保域名配置了80端口监听
其他的以此类推了,比如我的tomcat,使用的是3003端口,如下配置
总结一下
tomcat要先如第一步修改server.xml文件,然后直接配置ndinx.conf就行。首先配置80端口监听,你有多少域名要配ssl就配多少个80端口监听serve,当然你也可以直接合并成一个,我这里方便演示拆开了。
有人要问了,为什么不合并写在一个server呢?首先,这当然可以写在一起,但是会有问题的,问题就是:合并写了,会导致http自动转换成https失效,就我目前的测试来看,会有好几种问题表现,比如是两个域名写在一起的,就会出现形如:https://www.xxxxxx.com&www.xxxxxx.com这种形式的url,然后报错找不到服务器地址;还有如果是域名带项目名如http://www.xxxxx.com/xxx的形式访问,就会转换成https:// _/xxx的样子。所以,还是直接分开写server,有几个域名配几个,当然最上面要单独写一个不写监听域名的如下图
如图,域名用逗号分开就行。
然后按需配置反向代理,这个就只能一个一个server写了。有几个写几个。有一点需要注意
如上图,443端口,必须写上对应的域名,不然请求会找不到对应的server。
前面已经给域名配置好了80端口,会自动转成https模式,这样就自动转到了默认的443端口,于是我们配的443端口监听就能捕捉到请求,然后根据监听域名匹配,执行相应的server,进而转到实际的端口地址,这就是此次配置多端口多域名的ssl的基本思路。而关于为什么使用127.0.0.1,是因为我在安全组关闭了3000和3003端口,这样做是为了防止会有人绕过nginx,直接以域名加端口或者ip加端口的方式访问服务。与此配合,在第一个server重要如下写,加上rewrite ^ /error.html;,至于这个页面,大家可以自己定义。而80端口后面的default_server,其他的server不要写。
关于规范使用域名访问,还有一些小技巧,比如不带www的域名访问,当然得保证两个域名指向ip是一致的例如www.xxxx.com和xxxx.com是指向同一地址的就可以,具体方法就是在域名解析里加上@,如下图
然后如下图配置
在return里补全www就行了,以此类推。另外,建议使用return 301的写法,这种方法是性能上最优的,因为rewrite指令有很多写法和规则,执行完所有正则匹配后,Nginx 才会知道这是一个301永久重定向。
关于关闭端口只开放80和443的具体详细说明,请各位移步:
[参考文档-防止绕过nginx直接访问tomcat]
https://www.geek-share.com/detail/2726121562.html
- 点赞
- 收藏
- 分享
- 文章举报
- 关于Apache 设置反向代理的一个注意问题
- Nginx 反向代理基本框架
- Nginx的使用(反向代理,负载均衡)
- nginx反向代理
- Squid服务日志分析
- 解决nginx proxy_pass反向代理cookie,session丢失的问题
- Kubernetes用nginx反向代理另外服务
- Nginx反向代理缓存架构设计
- 负载均衡与反向代理理解
- 配置反向代理(到指定文件的静态文件)
- vanish高速反向代理服务器配置
- 在CentOS7上部署squid缓存服务器及代理功能
- 关于修改banner信息;nginx反向代理apache应用
- 新手入门:一分钟学会反向代理!
- squid.conf 详解
- 负载均衡 和 反向代理
- 最有价值的squid3.0配置说明:squid对应不同端口提供服务
- nginx反向代理ajax,解决跨域问题
- nginx简单配置反向代理和负载均衡
- Apache:反向代理配置