手机建设网站赚钱,孝感注册公司,培训学校加盟,做的好的网站欣赏现象#xff1a;有个web项目#xff0c;其中有调用摄像头。我部署在本地开发环境#xff0c;使用 http://127.0.0.1:8000 访问项目时#xff0c;可以正常调用摄像头。但在部署到远程服务器后#xff0c;通过Nginx反向代理的http地址访问时#xff0c;却提示#xff1a;无… 现象有个web项目其中有调用摄像头。我部署在本地开发环境使用 http://127.0.0.1:8000 访问项目时可以正常调用摄像头。但在部署到远程服务器后通过Nginx反向代理的http地址访问时却提示无权限访问摄像头 原因现代浏览器出于安全考虑仅允许通过HTTPS使用摄像头功能。如果使用HTTP除非地址是localhost浏览器对此有特殊待遇允许它们绕过一些安全限制。下图来自通义千问 解决把项目部署为通过https访问。为简单起见我直接配置Nginx在HTTPS地址监听转发至内网的http服务。见下面的配置其中配置SSL证书的部分我只确定ssl_certificate的两行是必需的
server {listen portA ssl;listen [::]:portA ssl;server_name localhost;ssl_certificate /etc/pki/*********.pem;ssl_certificate_key /etc/pki/*********.key;ssl_session_cache shared:SSL:1m;ssl_session_timeout 10m;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;ssl_prefer_server_ciphers on;# 添加CSP头解决混合内容问题add_header Content-Security-Policy upgrade-insecure-requests;# 其他安全头add_header Strict-Transport-Security max-age31536000; includeSubDomains always;add_header X-Frame-Options SAMEORIGIN;add_header X-Content-Type-Options nosniff;location / {proxy_pass http://127.0.0.1:****/;proxy_set_header Host $http_host; #后台可以获取到完整的ip端口号proxy_set_header X-Real-IP $remote_addr; #后台可以获取到用户访问的真实ip地址proxy_buffering off;client_max_body_size 50m;}}这样通过https://公网IP:portA, 就可以访问服务且正常调用摄像头了。