技术 思绪 摘录 旅行
使用Tengine反向代理我们的websocket服务,将域名解析到我们的ubuntu服务器,将域名给业务系统使用,这里记录一下如何配置Tengine的代理

首先前提是我们有Ubuntu操作系统和已经安装好的Tengine软件


1、编写我们的websocket服务,凑巧我的服务是控制台应用程序,只能是ip:port的形式访问,这给我们造成了一定的困扰和麻烦。


2、

    现有的服务:ws://192.168.20.35:9962/Chat 

    现有的Ubuntu服务器IP:192.168.183.134 (已经安装Tengine)

    现有域名:demo3.com,host文件配置指向Ubuntu服务器


3、最终目的是用ws://demo.com来访问我们的ws://192.168.20.35:9962服务


4、直接来Tengine配置


server {
        listen       80;
        server_name  demo3.com;    
        client_max_body_size 10m;
         location / {
            proxy_pass http://192.168.20.35:9962;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            
            proxy_connect_timeout 4s;
            proxy_read_timeout 60s;//长连接必要
            proxy_send_timeout 12s;
        }
}


5、配置ssl证书


server {
        listen  80;
        listen 443 ssl;
        server_name  demo3.com; 
 
        ssl_certificate      ../cert/1823960__demo3.com.pem;
        ssl_certificate_key  ../cert/1823960__demo3.com.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;


        location / {
	    proxy_pass http://192.168.20.35:9962;

            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_set_header X-Real-IP $remote_addr;
            
	    proxy_connect_timeout 4s;
            proxy_read_timeout 60s;
            proxy_send_timeout 12s;
        }
    }


注意看坑的地方,proxy_pass 代理的并不是ws协议,而是http协议,这一点我听说ws协议和http相似,但是没想到这么玩儿的。


这时候,我们就完成了

CarsonIT 微信扫码关注公众号 策略、创意、技术

留下您的脚步

 

最近评论

查看更多>>

热点推荐

友情打赏

请打开您的微信,扫一扫