问题:当项目部署在内网的时候,需要向外网发送消息,比如邮件等。
解决前提:将nginx 部署在其它可以访问外网的服务器上,且与部署项目的服务器同属同一局域网下。
解决过程:
1、针对nginx进行配置
upstream mailsmtp_pro {
server smtp.qq.com:587;
}
server {
listen 587; # 对外提供服务TCP监听
proxy_connect_timeout 5s;
proxy_timeout 5s;
proxy_pass mailsmtp_pro;
}
2、针对springBoot进行配置
spring.mail.host=mailsmtp_pro
spring.mail.port=587
spring.mail.username=xxxx@qq.com
spring.mail.password=azsiwoitpekyfhaf
spring.mail.default-encoding=UTF-8
spring.mail.properties.mail.smtp.socketFactoryClass=javax.net.ssl.SSLSocketFactory
spring.mail.properties.mail.debug=true
通过这样的形式,nginx起到一个代理的作用。