通過nginx轉發調取阿里雲api發送郵件

最近公司有個需求要求監控系統運行,報錯要求發郵件通知我們自己,但是有一個問題是服務器不能夠訪問外網所以直接發郵件的途徑就直接不能用了,然後想到有一臺可以訪問外網的同局域網機器,就想能不能通過nginx去給我做轉發,搗鼓了一個下午之後終於可以了!記錄一下

根據阿里雲發送郵件的api的來看域名是 :dm.aliyuncs.com  可以適應http或者https調用api 這裏用http方式調用

然後nginx的目的是訪問我這臺機器指定端口我跳轉到上面的域名去

阿里雲郵件推送API示例:http://dm.aliyuncs.com/?Action=SingleSendMail&[email protected]&ReplyToAddress=true&AddressType=1&[email protected]&Subject=Subject&HtmlBody=body

改變後API示例http://dm.aliyuncs.com:8101/?Action=SingleSendMail&[email protected]&ReplyToAddress=true&AddressType=1&[email protected]&Subject=Subject&HtmlBody=body

 

首先配置nginx 訪問8101端口轉跳到 http://dm.aliyuncs.com

	server {
		listen 8101;

		location / {
			proxy_pass http://dm.aliyuncs.com;
			proxy_connect_timeout 5;
			proxy_set_header Upgrade $http_upgrade;
			proxy_set_header Connection "upgrade";
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_set_header Host $host;
			proxy_http_version 1.1;
		}
	}

然後試着訪問了一下 :http://192.168.45.12:8101/?Action=SingleSendMail&[email protected]&ReplyToAddress=true&AddressType=1&[email protected]&Subject=Subject&HtmlBody=body

訪問報錯,原因可能是阿里雲後臺開啓了域名檢測

所以接下來修改服務器上的 hosts 文件 做本地的域名映射

在最下面添加     192.168.45.12        dm.aliyuncs.com

即你在本地訪問 dm.aliyuncs.com 是會解析到 192.165.45.12 上

然後調用API http://dm.aliyuncs.com:8101/?Action=SingleSendMail&[email protected]&ReplyToAddress=true&AddressType=1&[email protected]&Subject=Subject&HtmlBody=body

就能成功了

 

主要改變就是在原鏈接上添加端口即可

 

如果不想修改鏈接 nginx 可以監聽80端口 即可實現

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章