欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Nginx實現(xiàn)TCP端口的偵聽及轉(zhuǎn)發(fā)操作步驟

 更新時間:2024年11月09日 10:42:13   作者:AiFlutter  
這篇文章主要介紹了Nginx實現(xiàn)TCP端口的偵聽及轉(zhuǎn)發(fā)的相關(guān)資料,文章介紹了如何使用Nginx進行TCP代理(四層代理)來處理MQTT的集群需求,包括配置Nginx支持stream模塊、編寫TCP代理配置文件以及重新加載Nginx以應(yīng)用更改,需要的朋友可以參考下

一、說明

由于我們在使用mqtt時,會接收大量的客戶端連接,單機的mqtt肯定是扛不住的,所以需要一個mqtt的集群來處理,這時就得有一個網(wǎng)關(guān)來負責(zé)請求的轉(zhuǎn)發(fā)

nginx從1.9.0版本開始,新增了ngx_stream_core_module模塊,使nginx支持四層代理和負載均衡。 默認編譯時該模塊未編譯進去,需要編譯時添加 --with-stream,--with-stream_ssl_module,使其支持stream代理

在之前的版本如果想支持,需要打補丁,安裝模塊nginx_tcp_proxy_module。 http代理,通常就是我們說的七層代理,工作在第七層應(yīng)用層。 而tcp代理,就是我們常說的四層代理,工作在網(wǎng)絡(luò)層和傳輸層

http代理,通常就是我們說的七層代理,工作在第七層應(yīng)用層
而tcp代理,就是我們常說的四層代理,工作在網(wǎng)絡(luò)層和傳輸層

需要用到的命令

命令說明
firewall-cmd --list-ports  

查看開放的端口號 

firewall-cmd --zone=public --add-port=8888/tcp --permanent開放對應(yīng)端口號:8888
firewall-cmd --zone=public --remove-port=80/tcp --permanent關(guān)閉端口號
firewall-cmd --reload 重啟防火墻 
 systemctl status firewalld.service 查看防火墻狀態(tài)

二、操作步驟

2.1 查看nginx是否安裝stream

nginx -V | tr ' ' '\n'|grep stream

如果出現(xiàn)下面兩項,說明支持

--with-stream
--with-stream_ssl_module

2.2 如果沒有則重新安裝nginx

1. sudo yum install nginx -y
2. sudo yum -y install epel-release
3. yum -y install nginx-all-modules.noarch
4. vi nginx.conf   #頂部加一行l(wèi)oad_module /usr/lib64/nginx/modules/ngx_stream_module.so;

2.3 tcp代理(mqtt為例)

  • tcp代理與我們平常說的網(wǎng)站反向代理不一樣,它是基于tcp協(xié)議
  • stream反向代理模塊與http和events是平級的,不要把配置寫到http里面了

為了方便添加stream配置,我們單獨在nginx目錄下創(chuàng)建一個stream目錄,存放tcp代理配置文件

在 /etc/nginx/nginx.conf 中加入如下:

stream {
log_format proxy '$remote_addr [$time_local] '
'$protocol $status $bytes_sent $bytes_received '
'$session_time "$upstream_addr" '
'"$upstream_bytes_sent" "$upstream_bytes_received" "$upstream_connect_time"';
access_log  /var/log/nginx/stream.log proxy;
open_log_file_cache off;
include stream/*conf;
}

在nginx/stream下創(chuàng)建一個mqtt.conf配置文件

upstream mqtt_tcp_server{
    server ec2-52-90-93-84.compute-1.amazonaws.com:8883;
} 
server {
listen 8883; #監(jiān)聽端口
proxy_connect_timeout 150s;
proxy_timeout 150s;
proxy_pass mqtt_tcp_server; #反向代理地址
proxy_buffer_size 3M;
tcp_nodelay on;
}

重載nginx

/usr/local/nginx/sbin/nginx -s reload

當(dāng)我們訪問nginx的8883端口時,會自動代理到目標主機的8883端口上

總結(jié)

到此這篇關(guān)于Nginx實現(xiàn)TCP端口的偵聽及轉(zhuǎn)發(fā)的文章就介紹到這了,更多相關(guān)Nginx TCP端口偵聽及轉(zhuǎn)發(fā)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • nginx中如何配置proxy_pass

    nginx中如何配置proxy_pass

    這篇文章主要介紹了nginx中如何配置proxy_pass問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Nginx配置支持ThinkPHP的PATH_INFO

    Nginx配置支持ThinkPHP的PATH_INFO

    這篇文章主要介紹了Nginx配置支持ThinkPHP的PATH_INFO,本文在Ubuntu的開發(fā)環(huán)境加配置成功,需要的朋友可以參考下
    2015-07-07
  • windows安裝nginx部署步驟圖解(反向代理與負載均衡)

    windows安裝nginx部署步驟圖解(反向代理與負載均衡)

    這篇文章主要介紹了windows安裝nginx部署步驟,設(shè)置反向代理與負載均衡的使用方法,需要的朋友可以參考下
    2014-02-02
  • nginx設(shè)置攔截請求的幾種方法

    nginx設(shè)置攔截請求的幾種方法

    本文主要介紹了nginx設(shè)置攔截請求的幾種方法
    2024-05-05
  • 淺析nginx 客戶端返回499的錯誤碼的問題

    淺析nginx 客戶端返回499的錯誤碼的問題

    我們服務(wù)器客戶端一直有返回錯誤碼499的日志,以前覺得比例不高,就沒有仔細查過,最近有領(lǐng)導(dǎo)問這個問題,為什么耗時只有0.0幾秒,為啥還499了?最近幾天就把這個問題跟蹤定位了一下,這里做個記錄,對nginx返回499錯誤碼相關(guān)知識感興趣的朋友一起看看吧
    2022-10-10
  • 配置Nginx服務(wù)器展示隨機首頁與空白圖片的方法

    配置Nginx服務(wù)器展示隨機首頁與空白圖片的方法

    這篇文章主要介紹了配置Nginx服務(wù)器展示隨機首頁與空白圖片的方法,分別用到了ngx_http_random_index_module模塊和ngx_http_empty_gif_module模塊,需要的朋友可以參考下
    2016-01-01
  • nginx如何通過proxy_pass設(shè)置反向代理,隱藏端口號

    nginx如何通過proxy_pass設(shè)置反向代理,隱藏端口號

    這篇文章主要介紹了nginx如何通過proxy_pass設(shè)置反向代理,隱藏端口號方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Ubuntu環(huán)境下安裝部署Nginx詳細步驟(有網(wǎng))

    Ubuntu環(huán)境下安裝部署Nginx詳細步驟(有網(wǎng))

    Nginx是一個開源的?HTTP?網(wǎng)絡(luò)服務(wù)器,下面這篇文章主要給大家介紹了關(guān)于Ubuntu環(huán)境下安裝部署Nginx(有網(wǎng))的相關(guān)資料,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2024-01-01
  • Nginx配置多個訪問路徑的實現(xiàn)

    Nginx配置多個訪問路徑的實現(xiàn)

    本文主要介紹了Nginx配置多個訪問路徑的實現(xiàn),Nginx通過配置多個service就可以實現(xiàn)多訪問路徑,具有一定的參考價值,感興趣的可以了解一下
    2023-10-10
  • Nginx(PHP/fastcgi)的PATH_INFO問題

    Nginx(PHP/fastcgi)的PATH_INFO問題

    PATH_INFO是一個CGI 1.1的標準,經(jīng)常用來做為傳參載體. 比如, 我們可以使用PATH_INFO來代替Rewrite來實現(xiàn)偽靜態(tài)頁面, 另外不少PHP框架也使用PATH_INFO來作為路由載體.
    2011-08-08

最新評論