https配置前后端问题

我前段代码和后端代码放在同一个服务器
前端是nginx服务器运行的,配置了https
后端是node写的,没有配置https,我后端端口3000,我请求的地址是https://接口地址,请求不到
但是我在后端也配置了https的话,两个接口端口号就相同了
www.地址.com (前端主页)
www.地址.com:3000 (后端接口)
该怎么解决,怎么两个都改为https访问

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/701000
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:前端https通过nginx转发http请求,后端拿不到请求头
  • 除此之外, 这篇博客: nginx配置https域名详解中的 三、服务器方面的步骤 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 1、首先,我们根据阿里给出的教程,我们需要把下载的.key和.pem文件上传到服务器上。先找到nginx的安装目录。

    这里注意下,我本来是通过:

    ps  -ef | grep nginx
    
    返回结果包含安装目录
    root      2662     1  0 07:12 ?        00:00:00 nginx: master process /usr/sbin/nginx

          但是在后面才发现,这个只是nginx程序所在的位置,我们要找的是nginx配置文件所在的目录。在我这里是:/etc/nginx

    2、在nginx目录下新建cert目录,把证书拷贝进去

    1、创建cert
    mkdir cert;
    2、通过ftp把证书文件传上去
    3、赋予权限
    chmod 777 -R cert;

    3、修改nginx的配置,这里注意下,https用的是443端口,而不是咱们http的80端口:

    server {
            listen 443;
            server_name aaa.bbb.com(你的域名);
            root 你的项目目录;
            index index.php index.html;
        ssl on;
         ssl_certificate   cert/214482258820159.pem;
         ssl_certificate_key  cert/214482258820159.key;
         ssl_session_timeout 5m;
         ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
         ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
         ssl_prefer_server_ciphers on;
        ...

    4、修改完成之后,重启nginx即可。重启之后,我们通过https://xxxx.com即可访问自己的项目。

  • 您还可以看一下 蒋小波老师的适合网络系统管理赛项的Nginx系列基础教程课程中的 第十二节课:实战9:Nginx的https配置实现小节, 巩固相关知识点