最近在幫朋友做個(gè)微信公眾號(hào)的開發(fā),在開發(fā)過程中遇到一個(gè)比較麻煩的事情梧却,就是每次修改好代碼編譯后重新部署到服務(wù)器才能調(diào)試,如此就很麻煩桃煎。后來想到自己有內(nèi)網(wǎng)穿透的服務(wù)器篮幢,可以搭配Nginx使用反向代理實(shí)現(xiàn)微信消息轉(zhuǎn)發(fā)到本地機(jī)子。
操作前提:
1.擁有一臺(tái)外網(wǎng)服務(wù)器为迈;
2.已備案的域名(微信要求)三椿。
frp
關(guān)于frp及搭建frp服務(wù)器可參考我另一篇文章 使用frp實(shí)現(xiàn)內(nèi)網(wǎng)穿透 。
Nginx
Nginx是一款輕量級(jí)的Web 服務(wù)器/反向代理服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器葫辐,并在一個(gè)BSD-like 協(xié)議下發(fā)行搜锰。由俄羅斯的程序設(shè)計(jì)師Igor Sysoev所開發(fā),供俄國(guó)大型的入口網(wǎng)站及搜索引擎Rambler(俄文:Рамблер)使用耿战。其特點(diǎn)是占有內(nèi)存少蛋叼,并發(fā)能力強(qiáng),事實(shí)上nginx的并發(fā)能力確實(shí)在同類型的網(wǎng)頁服務(wù)器中表現(xiàn)較好剂陡。
配置
配置服務(wù)器frps
修改frps.ini
文件狈涮,設(shè)置http訪問端口為8000
,修改完成后重啟frps
服務(wù)鸭栖;
# frps.ini
[common]
bind_port = 7000
# http服務(wù)端口
vhost_http_port = 8000
配置客戶端frpc
修改客戶端frpc.ini
文件歌馍,添加以下配置,修改完成后重啟frpc
服務(wù)晕鹊;
[web_server]
type = http
local_port = 80 #本地端口
custom_domains = www.example.com
配置Nginx
配置反向代理松却,將請(qǐng)求轉(zhuǎn)發(fā)至8000
端口;
server {
listen 80;
server_name www.example.com; # 綁定域名
location / {
proxy_pass http://localhost:8000; # 轉(zhuǎn)發(fā)至本機(jī)8000,即在frps.ini中配置的vhost_http_port
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
檢查Nginx配置文件是否正確:
nginx -t
如果輸出如下則說明配置正確溅话,此時(shí)就可以使用nginx -s reload
重啟Nginx晓锻。
nginx: the configuration file /{nginx-path}/conf/nginx.conf syntax is ok
nginx: configuration file /{nginx-path}/conf/nginx.conf test is successful
重啟完成后即可在瀏覽器中訪問www.example.com
,測(cè)試請(qǐng)求的是否是本機(jī)飞几。
原文地址:https://www.lwhweb.com/2017/11/02/use-frp-forward-wechat-message-local-machine/