当前位置: 首页 > 知识库问答 >
问题:

node.js - 如何解决Nginx HTTPS配置访问失败问题?

施雅懿
2024-05-07

配置HTTP成功,并且所有网页皆可访问。唯独HTTPS失败,我的nginx配置文件如下

user www-data;worker_processes auto;pid /run/nginx.pid;include /etc/nginx/modules-enabled/*.conf;events {    worker_connections 768;    # multi_accept on;}http {    sendfile on;    tcp_nopush on;    tcp_nodelay on;    keepalive_timeout 65;    types_hash_max_size 2048;        include /etc/nginx/mime.types;    default_type application/octet-stream;    server{        listen 443 ssl;        server_name www.xiaoyangst.top;        ssl_certificate /home/xyst/XrtcDemo/server/cert/www.xiaoyangst.top_cert_chain.pem;        ssl_certificate_key /home/xyst/XrtcDemo/server/cert/www.xiaoyangst.top_key.key;        location / {            proxy_pass https://www.xiaoyangst.top:8443;        }        }    server {                listen 80;        server_name www.xiaoyangst.top;        root /home/xyst/XrtcDemo/myapp/build;        index index.html;        location / {            try_files $uri %uri/ /index.html;        }                location /api {                    proxy_pass http://www.xiaoyangst.top:8888;                    proxy_set_header Host $host;                    proxy_set_header X-Real-IP $remote_addr;                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;                    proxy_set_header X-Forwarded-Proto $scheme;            }         return 301 https://$server_name$request_uri;    }        ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE    ssl_prefer_server_ciphers on;    access_log /var/log/nginx/access.log;    error_log /var/log/nginx/error.log;    gzip on;    include /etc/nginx/conf.d/*.conf;    include /etc/nginx/sites-enabled/*;}

访问情况
image.png

通过 openssl s_client -connect www.xiaoyangst.top:443 命令确保SSL和证书没有问题

后端Node.js服务正常启动,且通过PostMan工具测试后端没有问题。所以问题应该在nginx这边
image.png
image.png

我怀疑是没有把资源给到HTTPS,所以我把HTTP去掉,直接给到HTTPS

    server{        listen 443 ssl;        server_name www.xiaoyangst.top;        ssl_certificate /home/xyst/XrtcDemo/server/cert/www.xiaoyangst.top_cert_chain.pem;        ssl_certificate_key /home/xyst/XrtcDemo/server/cert/www.xiaoyangst.top_key.key;        server_name www.xiaoyangst.top;                root /home/xyst/XrtcDemo/myapp/build;                index index.html;                location / {                        try_files $uri %uri/ /index.html;                }                location /api {                         proxy_pass https://www.xiaoyangst.top:8443;                         proxy_set_header Host $host;                         proxy_set_header X-Real-IP $remote_addr;                         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;                         proxy_set_header X-Forwarded-Proto $scheme;                 }        }

问题得到解决,但是我想说如何既可以配置HTTP,还可以配置HTTPS呢?

就是访问HTTP可以成功,访问HTTPS也可以成功,难道只能选择再Copy一份吗?(因为不很熟悉nginx)

共有1个答案

江飞章
2024-05-07

你需要调整三处

  • 第一,Nginx这层作为代理,它配置了证书等,然后转发请求给本地Web程序。 本地Web程序只需启动一个http的服务即可,即本例中只要保留 8888端口那个服务即可,让80和443端口访问Nginx后都转发给这个8888。
  • 第二,Nginx配置中,ssl一段,将 proxy_pass https://www.xiaoyangst.top:8443; 改为 proxy_pass http://localhost:8888;
  • 第三,调整80端口的Nginx配置,改为(只要三行)

    server {      listen 80;      server_name www.xiaoyangst.top;      return 301 https://$host$request_uri;}
 类似资料:
  • wordpress搭建的博客从宝塔上换到centos7系统中,nginx配置https,访问域名在开启clash网络代理情况下可以正常访问,但是关闭clash就访问失败。使用PHP8.2、MySql5.7、Nginx1.25 nginx配置 开启防火墙放开80、22、443端口,后关闭防火墙还是不行,然后查看nginx和PHP-fpm的端口,还更换PHP—fpm版本,更该wordpress权限,更

  • vite.config.js的代理配置失效 问题描述:一个前后端分离项目,前端为vue3+vite4项目, 我提供的后端接口为7002,url为http://localhost:7002/user/info 我在vite.config.js做了代理的配置,这个配置一直不生效, 实际请求路径一直是http://localhost:4000/user/info,一开始请求失败404,后来莫名其妙请求成

  • Ubuntu22.04安装os_testr失败 Ubuntu22.04安装os_testr失败,报错 尝试过1、升级pip,2、手工pip install仍失败;

  • 本文向大家介绍解决tp5在nginx下修改配置访问的问题,包括了解决tp5在nginx下修改配置访问的问题的使用技巧和注意事项,需要的朋友参考一下 第一:修改nginx配置 注意:所有配置都是基于lnmp1.4的一键安装环境的 根据自己的nginx配置,找到正确的fastcgi.conf,修改fastcgi_param参数 将默认的路径修改至自己的项目根目录的上一级,注意是上级!!! 3、lnmp

  • 本文向大家介绍详解pandas赋值失败问题解决,包括了详解pandas赋值失败问题解决的使用技巧和注意事项,需要的朋友参考一下 一、pandas对整列赋值 这个比较正常,一般直接赋值就可以: 二、pandas对非整列赋值 1、用单个值赋值 是不是很奇怪,没有赋值成功!! 2、用多个值赋值 报错了!!提示说,要用.loc赋值,那我们试一下。 3、.loc赋值 报错,这是因为shape原因。 三、用数

  • 我已经尝试了多种方法,但都失败了, 失败:构建失败,但有例外。 > 错误:任务:app:compileFlutterBuildDebug的执行失败。 处理“命令”C:\Users\IMBA\flatter\bin\flatter。bat“”以非零退出值1结束 > 尝试:使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获得更多日志输出。运行--扫描以获得

  • 本文向大家介绍解决PyCharm import torch包失败的问题,包括了解决PyCharm import torch包失败的问题的使用技巧和注意事项,需要的朋友参考一下 Anaconda3-5.1.0-MacOSX-x86_64.pkg 下载安装后,附带安装了pytorch包。 需要将环境调整到新的python3.6目录下。 1、在Project Interpreter选择“Show All

  • 本文向大家介绍解决无法配置SQL2005问题,包括了解决无法配置SQL2005问题的使用技巧和注意事项,需要的朋友参考一下 问题:点击“SQL Server Configuration Manager”却显示“无法连接到WMI 提供程序 请注意,你只能使用SQL Server 配置管理器来管理SQL Server 2005服务器。找不到指定的模块。[0x8007007e]” 解决方法: 1、到sy