Nginx安装及Socket服务转发配置指南

一、Nginx安装

图片[1]_Nginx安装及Socket服务转发配置指南_知途无界

1. Linux系统安装(以Ubuntu为例)

# 更新软件包列表
sudo apt update

# 安装Nginx
sudo apt install nginx -y

# 启动Nginx服务
sudo systemctl start nginx

# 设置开机自启
sudo systemctl enable nginx

# 检查状态
sudo systemctl status nginx

2. Windows系统安装

  1. Nginx官网下载Windows版本
  2. 解压到指定目录
  3. 运行nginx.exe即可启动

二、配置Nginx转发Socket服务

1. 基本WebSocket转发配置

http {
    map $http_upgrade $connection_upgrade {
        default upgrade;
        '' close;
    }

    server {
        listen 80;
        server_name yourdomain.com;

        location /ws/ {
            proxy_pass http://backend_server;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection $connection_upgrade;
            proxy_set_header Host $host;
            
            # 可选:设置超时时间
            proxy_connect_timeout 7d;
            proxy_send_timeout 7d;
            proxy_read_timeout 7d;
        }
    }
}

2. TCP Socket转发配置(需要Nginx的stream模块)

# 在nginx.conf主配置文件中添加
stream {
    server {
        listen 12345;  # 外部访问端口
        proxy_pass backend_server:23456;  # 后端服务地址和端口
        proxy_timeout 60s;
    }
}

三、常见Socket服务转发示例

1. 转发WebSocket服务(如Socket.IO)

server {
    listen 80;
    server_name socket.example.com;

    location /socket.io/ {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

2. 转发自定义TCP Socket服务

stream {
    upstream socket_backend {
        server 127.0.0.1:8888;
    }

    server {
        listen 9999;
        proxy_pass socket_backend;
        proxy_buffer_size 16k;
    }
}

四、SSL/TLS配置(安全连接)

server {
    listen 443 ssl;
    server_name socket.example.com;

    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;
    
    location /ws/ {
        proxy_pass http://backend_server;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
        proxy_set_header Host $host;
    }
}

五、验证与测试

  1. 检查Nginx配置语法:
sudo nginx -t
  1. 重新加载Nginx配置:
sudo nginx -s reload
  1. 使用工具测试连接:
  • WebSocket: 使用wscat或浏览器WebSocket客户端
  • TCP Socket: 使用telnetnc命令

六、性能优化建议

  1. 调整缓冲区大小:
proxy_buffers 8 32k;
proxy_buffer_size 64k;
  1. 增加连接保持时间:
proxy_connect_timeout 1d;
proxy_send_timeout 1d;
proxy_read_timeout 1d;
  1. 启用负载均衡(多后端实例):
upstream socket_servers {
    server 192.168.1.10:8000;
    server 192.168.1.11:8000;
    server 192.168.1.12:8000;
}

通过以上配置,Nginx可以高效地转发各种Socket服务,并提供负载均衡、SSL加密等高级功能。

© 版权声明
THE END
喜欢就点个赞,支持一下吧!
点赞39 分享
评论 抢沙发
头像
欢迎您留下评论!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容