张建平 9adaacb84d feat: 初始化项目结构
添加 README.MD、images目录、single_node目录及其配置文件,multi_node目录及各节点配置。
2025-02-22 18:03:33 +08:00

128 lines
3.4 KiB
Nginx Configuration File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 10240;
}
stream {
upstream emqxtcp {
server node20.220:1883;
server node20.50:1883;
server node22.85:1883;
}
upstream emqxtls {
server node20.220:1883 weight=1 max_fails=2;
server node20.50:1883 weight=1 max_fails=2;
server node22.85:1883 weight=2 max_fails=2;
}
# 多网卡
# split_clients "$remote_addr$remote_port" $multi_ip {
# 20% 10.211.55.5;
# 20% 10.211.55.20;
# 20% 10.211.55.21;
# 20% 10.211.55.22;
# * 10.211.55.23;
# }
# TCP
server {
listen 1883;
# Multiple Network Interfaces
#proxy_bind $multi_ip;
proxy_pass emqxtcp;
# EMQX corresponding listeners need to enable the proxy protocol.
# proxy_protocol on;
}
# TLS
server {
listen 8883 ssl;
# If the certificate doesn't match the hostname, validation needs to be disabled.
ssl_verify_client off;
ssl_verify_depth 0;
ssl_certificate /etc/nginx/certs/cert.pem;
ssl_certificate_key /etc/nginx/certs/key.pem;
ssl_handshake_timeout 15s;
proxy_pass emqxtls;
proxy_buffer_size 4k;
# EMQX corresponding listeners need to enable the proxy protocol.
# proxy_protocol on;
}
}
http {
# Nginx status
server {
listen 8888;
location /status {
stub_status on;
access_log off;
}
}
upstream emqxws {
server node20.220:8083;
server node20.50:8083;
server node22.85:8083;
}
# ws
server {
listen 8083;
location /mqtt {
proxy_pass http://emqxws;
# websocket连接的Upgrade必须设置为WebSocket表示在取得服务器响应之后使用HTTP升级将HTTP协议转换(升级)为WebSocket协议
proxy_set_header Upgrade $http_upgrade;
# websocket 的Connection必须设置为Upgrade表示客户端希望连接升级
proxy_set_header Connection "Upgrade";
#反向代理真实IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#禁用缓存
proxy_buffering off;
}
}
# wss
server {
listen 8084 ssl;
ssl_certificate /etc/nginx/certs/cert.pem;
ssl_certificate_key /etc/nginx/certs/key.pem;
location /mqtt {
proxy_pass http://emqxws;
# WebSocket Connection Upgrade must be set to "WebSocket," indicating that after receiving a server response, the HTTP protocol is transformed (upgraded) to the WebSocket protocol.
proxy_set_header Upgrade $http_upgrade;
# WebSocket Connection header must be set to "Upgrade," indicating that the client wishes to upgrade the connection.
proxy_set_header Connection "Upgrade";
# Proxy Real IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# Disable Caching
proxy_buffering off;
}
}
}