events { worker_connections 1024; } stream { #stream模塊,就跟http模塊一樣 upstream ssh { server 127.0.0.1:22; } server { #里面可以有多個監聽服務,配置監聽端口和代理的ip和端口就可以進行tcp代理了。 listen 9922; proxy_pass ssh; proxy_connect_timeout 1h; proxy_timeout 1h; } }
http代理
server { listen 8844; server_name 127.0.0.1; location / { proxy_read_timeout 1800; proxy_next_upstream http_502 http_504 error timeout invalid_header; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; proxy_pass http://192.168.1.253:808; } }
- 日志
stream{
log_format proxy '[$time_local] remote_addr:$remote_addr $protocol status:$status $bytes_sent $bytes_received s_time:$session_time upstream_addr:$upstream_addr u_conn_time:$upstream_connect_time';
access_log logs/tcp-access.log proxy ;
}
參數 | 說明 | 示例 |
$remote_addr | 客戶端地址 | 211.28.65.253 |
$remote_user | 客戶端用戶名稱 | -- |
$time_local | 訪問時間和時區 | 18/Jul/2012:17:00:01 +0800 |
$request | 請求的URI和HTTP協議 | "GET /article-10000.html HTTP/1.1" |
$http_host | 請求地址,即瀏覽器中你輸入的地址(IP或域名) | www.0.com 192.168.100.100 |
$status | HTTP請求狀態 | 200 |
$upstream_status | upstream狀態 | 200 |
$body_bytes_sent | 發送給客戶端文件內容大小 | 1547 |
$http_referer | url跳轉來源 | https://www.baidu.com/ |
$http_user_agent | 用戶終端瀏覽器等信息 | "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; SV1; GTB7.0; .NET4.0C; |
$ssl_protocol | SSL協議版本 | TLSv1 |
$ssl_cipher | 交換數據中的算法 | RC4-SHA |
$upstream_addr | 后台upstream的地址,即真正提供服務的主機地址; 當ngnix做負載均衡時,可以查看后台提供真實服務的設備 |
10.10.10.100:80 |
$request_time | 整個請求的總時間 | 0.205 |
$upstream_response_time | 請求過程中,upstream響應時間 | 0.002 |
sudo vi /etc/nginx/nginx.conf
sudo systemctl reload nginx