Write the Code. Change the World.

5月 31

不走 nginx 的代理,请求连接 websocket,总需要带上端口号。比如 new WebSocket("wss://www.xxx.com:9958"),通过 nginx 的代理就可以实现这样的请求,比如 new WebSocket("wss://www.xxx.com/wss")

一波操作

vim www.xxx.com.conf

upstream websocket {
    # wss 配置代理到 127.0.0.1:9958
    server 127.0.0.1:9958;
}

server
{
    listen 80;
    server_name xxx.com www.xxx.com;

    return 301 https://www.xxx.com$request_uri;
}

server
{
    listen 443 ssl http2;
    server_name xxx.com www.xxx.com;

    if ($host = 'xxx.com' ){
        return 301 https://www.xxx.com$request_uri;
    }

    ssl_certificate         /service/nginx/conf/ssl/www.xxx.com.pem;
    ssl_certificate_key     /service/nginx/conf/ssl/www.xxx.com.key;

    location /wss {
        # 代理到上边的自定义的地址
        proxy_pass http://websocket;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
    }

    …

重启, nginx。

其实,在 proxy_pass 这里,可以直接设置为 127.0.0.1:9958

还有请求的时候,域名后一定要带上 wss 。

5月 31

Client does not support authentication protocol requested by server; conside 新旧版本密码算法不同引起的错误,只需要设置下密码方式为 mysql_native_password 就可。还是 navicat 做的好,新旧密码都支持。

操作一波

mysql -u root -p

xxxx

use mysql;

show tables;

# 查看已经有的用户
select user, host from user;

# 重新设置下密码,并使之生效
# 之前是 'xxx'@'%' IDENTIFIED BY 'xxxxxx'
'xxx'@'%' IDENTIFIED WITH mysql_native_password BY 'xxxxxx'

flush privileges;