nginx反向代理tcp協議的80端口


需求:內網有一台mqtt協議服務器,需要將外網的mqtt請求通過一台服務器代理到內網的mqtt服務器上。而這台代理服務器不會開放出了80之外的端口,所以只能使用80端口來轉發mqtt請求。

步驟:
1.安裝nginx,步驟略。

2.關閉80端口。
(1)通常80端口會被apache的httpd進程使用,查看進程使用80端口的命令是:

sudo netstat -apn|grep 80


(2)關閉使用80端口的進程,有兩種方式,第一種是“kill -9 進程號”,這個命令好像殺不掉httpd進程,就是用第二種命令“pkill -9 httpd”。

3.修改nginx的配置文件。
(1)Nginx1.9 版本以后增加 stream模塊,可以對tcp,udp請求進行代理和負載均衡了。
(2)打開配置文件,添加如下模塊:

stream {
  server {
    listen 80;
    proxy_pass apllo;
  }

  upstream apllo {
    server 127.0.0.1:31613;
  }
}

然后刪除http模塊。
(3)重啟nginx,命令是“nginx -s reload”,這個命令不一定好用,如果不好用的話,先用“pkill -9 nginx”命令殺掉nginx,再用“nginx -c /etc/nginx/nginx.conf”命令啟動nginx。


注意:在啟動nginx的過程中,可能會報一個端口80被占用的錯誤,是因為配置文件中http模塊也在監聽80端口,所以之后在stream模塊監聽80端口就報錯了,解決辦法就是刪除http模塊的配置。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM