用Qt开发 WebAssembly,放到nginx里面,用127.0.0.1访问没问题,用局域网IP访问就提示如下:
总结了以下两种解决办法:
①:配置 nginx http 头 [ 支持:WebAssembly Qt (single-threaded) ]
②:配置 nginx http 头, 给 nginx 配置证书,使用 https [ WebAssembly Qt (single-threaded),WebAssembly Qt (multi-threaded): ]
两种方法都需要配置 nginx http 头,但是显然第二种方法是最优解,操作起来也不复杂
操作步骤:
1、下载解压 mkcert,地址:Releases · FiloSottile/mkcert · GitHub
2、自证书:
# 1、安装根证书:
mkcert -install
# 2、查看生成的根证书是否安装正确(可不执行此步骤)
# 命令会回显证书路径,改pem后缀为crt,即可检查证书是否正确安装且有效
mkcert -CAROOT
# 3、签发证书
# 后面的域名和地址可以输入多个,把你服务器的域名或ip输入进去
# 即可生成证书和私钥文件,上传至 nginx 服务器
mkcert 127.0.0.1 192.168.1.100 *.xxxx.cn
2、配置 nginx :
打开 nginx 的配置文件,配置 SSL 节点,注意两点:
①:证书路径修改成你自己的
②:add_header 字段一定要
重启 nginx:service nginx reload
server {
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
server_name _;
# 证书路径
ssl_certificate /etc/nginx/cert/root.pem;
ssl_certificate_key /etc/nginx/cert/rootkey.pem;
root /var/www/html;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
location / {
add_header 'Cross-Origin-Embedder-Policy' 'require-corp';
add_header 'Cross-Origin-Opener-Policy' 'same-origin';
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
}
关于其他问题:
①:一定把这个自签的证书安装到你的浏览器设备上(电脑,手机上)
②:使用第一种方法,只需要把 add_header 放到默认的 80 端口配置下