1. 程式人生 > 實用技巧 >NGINX 做TCP轉發(埠轉發)並記錄日誌

NGINX 做TCP轉發(埠轉發)並記錄日誌

nginx安裝 略 (注意:必須加上--with-stream這個模組)

修改nginx.conf:

user  www www;
worker_processes  4; 
pid        logs/nginx.pid;
 
events {
    #use epoll;                            #Linux最常用支援大併發的事件觸發機制
    worker_connections  65535;
}
 
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 logs
/access_8000.log proxy ; open_log_file_cache off; upstream zifangsky { #hash $remote_addr consistent; server 10.10.100.31:8000 weight=5 max_fails=1 fail_timeout=20s; } server { listen 8000; proxy_connect_timeout 10s; proxy_timeout 10s; proxy_pass zifangsky; tcp_nodelay on; } }

在上面的配置檔案中配置了在訪問此伺服器的8080埠時,會將流量相應轉發到10.10.100.31這個伺服器的8000埠上。另外,測試發現只有當一個會話結束之後nginx才會將相關日誌記錄到指定的日誌檔案中