问题:当项目部署在内网的时候,需要向外网发送消息,比如邮件等。
    解决前提:将nginx 部署在其它可以访问外网的服务器上,且与部署项目的服务器同属同一局域网下。
    解决过程:
    1、针对nginx进行配置

    1. upstream mailsmtp_pro {
    2. server smtp.qq.com:587;
    3. }
    4. server {
    5. listen 587; # 对外提供服务TCP监听
    6. proxy_connect_timeout 5s;
    7. proxy_timeout 5s;
    8. proxy_pass mailsmtp_pro;
    9. }

    2、针对springBoot进行配置

    1. spring.mail.host=mailsmtp_pro
    2. spring.mail.port=587
    3. spring.mail.username=xxxx@qq.com
    4. spring.mail.password=azsiwoitpekyfhaf
    5. spring.mail.default-encoding=UTF-8
    6. spring.mail.properties.mail.smtp.socketFactoryClass=javax.net.ssl.SSLSocketFactory
    7. spring.mail.properties.mail.debug=true

    通过这样的形式,nginx起到一个代理的作用。