Nginx相关配置

配置SSL

server {
    # 配置默认访问443端口
    listen       443 ssl;
    # 配置证书对应域名
    server_name  your_domain_name;

    # 配置证书文件
    ssl_certificate     certificate_file.crt;
    # 配置证书私钥文件
    ssl_certificate_key certificate_key_file.key;
    # 配置TLS协议类型
    ssl_protocols       TLSv1.2;
    # 配置加密算法类型
    ssl_ciphers         ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;

    # ...
}

配置无后缀访问

server {
    location /your_path{
        try_files $uri $uri/ $uri.php$is_args$args;
    }

    # ...
}

配置wss协议

游戏中使用wss协议,而wss协议必须使用域名进行访问。
当客户端可以访问多个游戏服务器时,按照IP+端口的方式,那么每一台服务器都需要申请域名,且同时还要维护每台机器上的证书。
此时,我们可以用Nginx做代理,在一台服务器(想要高可用可以用两台)上即可用一个域名访问多个不同游戏服务器。
配置如下:

server {
    location /wss {
        proxy_pass http://$arg_ip:$arg_port;
        proxy_read_timeout 60s;
        proxy_http_version 1.1;

        proxy_set_header X-Real_IP $remote_addr;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
    }

    # ...
}

SSL/TLS的配置可以见上文,这里不再展示。
Nginx将客户端的wss协议处理为ws协议发给服务器,将服务器的ws协议处理为wss协议发给客户端。而ws协议是支持用IP+端口访问的。
这样,客户端只需要访问:域名/wss/?ip=xxx&port=xxx 即可连接对应不同的游戏服务器。


GitHub Blog

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容