Lehman-Blog - Nginx
type: channel
link: https://blog.lehman.top/tag/Nginx/
items: Nginx配置 WebSocket 【支持wss与ws连接】
items: 开发环境下Nginx/Tomcat的HTTPS配置

Nginx配置 WebSocket 【支持wss与ws连接】
type: item
date: 2021-10-09T15:49:00+08:00
description: [scode type="red"]场景：项目使用websocket技术,部署项目后如何修改配置文件让其开启WSS?[/scode]Nginx配置wss修改配置文件,修改并添加下配置（其中配置点1/2/3根据需求更改）server { listen 80; listen 443 ssl; server_name 域名; ##.................. ##.................. ##访问域名wss://xxx.xxxx.xxx/wss 即可 location /wss { proxy_pass http://xxxxx; ##代理到上面的ip proxy_connect_timeout 30s; ##配置点1 proxy_read_timeout 86400s; ##配置点2 proxy_send_timeout 30s; ##配置点3 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; } } [scode type="red"]场景：项目地址为Nginx代理后的地址，此时如何开启WSS[/scode]Nginx反向代理配置WSS查看Nginx配置文件反向代理的具体配置修改反向代理的配置以下以【宝塔面板】为例 (其它运维面板同理)进入宝塔面板, 网站 -> 设置, 修改反向代理配置PS:也可以通过找到反向代理的具体配置文件地址来修改配置文件查看反向代理的具体配置文件地址修改文件 -> 目录下只有一个文件, 如图配置, 即可开启WSS核心配置代码#持久化连接配置 proxy_connect_timeout 30s; proxy_read_timeout 86400s; proxy_send_timeout 30s; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade";

开发环境下Nginx/Tomcat的HTTPS配置
type: item
date: 2020-09-02T17:51:00+08:00
description: 生成本地CA证书[scode type="blue"]安装Choco[/scode]cmd 安装：@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"检查安装是否成功(ps:需要重新打开CMD)choco -v常用指令Commandschoco list -li 查看本地安装的软件choco search nodejs 查找安装包choco install sublimetext3 下载choco uninstall sublimetext3 卸载choco upgrade sublimetext3 更新（update）[scode type="blue"]安装mkcert[/scode]cmd 安装：choco install mkcert 安装成功后，应该可以使用 mkcert 命令了：mkcert将 CA 证书加入本地可信 CAmkcert -install WIN+R>>>[certmgr.msc]>>>查看证书certmgr.msc 生成自签证书(IP修改为自己的固定IP)mkcert localhost 127.0.0.1 192.168.1.95 ::1 通过输出，我们可以看到成功生成了 localhost+3.pem 证书文件和 localhost+3-key.pem 私钥文件，只要在nginx上使用这两个文件就可以了。Nginx 使用SSL证书将localhost+3.pem 证书文件和 localhost+3-key.pem 私钥文件 COPY到conf目录 修改nginx.conf文件#如果是纯静态项目可以这样配置 server { listen 9666 ssl; server_name localhost; #你的域名，需要将域名解析 charset utf-8; ssl_certificate localhost+3.pem; ssl_certificate_key localhost+3-key.pem; location / { root C:\********\xxxx-views; #项目路径 index index.html index.htm; } } #如果Tomcat项目 可以使用反向代理 server { listen 8443 ssl; server_name localhost; #你的域名，需要将域名解析 charset utf-8; ssl_certificate localhost+3.pem; ssl_certificate_key localhost+3-key.pem; location / { proxy_pass http://localhost:8081; #核心关键的地方，将数据交给本地8081端口的后台去处理（类似于重定向） } } 重启Nginxnginx -s stop nginx 此时通过设置的端口号 即可访问项目https://localhost:**(地址栏为HTTPS)JDK生成证书用jdk生成本地SSL证书 cmd 键入以下内容 并根据提示键入内容keytool -genkeypair -alias "tomcat" -keyalg "RSA" -keystore "c:\tomcat.keystore" Tomcat 使用JDK生成的证书前往Tomcat的conf目录修改service.xml(其中keystorePass为秘钥)[scode type="red"]PS:Tomcat的证书在浏览器会显示证书错误, 有红色警告,如有介意可使用Nginx配置SSL证书 然后进行反向代理[/scode]