nginx代理:证书Https、代理解决跨域问题

本文介绍了如何通过Nginx配置HTTPS反向代理,包括获取证书、编辑配置文件以及重启Nginx。同时,为解决前后端跨域问题,提供了通过Nginx代理不同端口的方法,实现前端和后端接口的正常访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、证书Https

(1)先获取https证书(nginx用的)

(2)配置nginx(如有模块化配置,那么在模块化配置文件中新增xxxx.conf 文件)

教程:nginx模块化配置

xxxx.conf 文件内容:

server {
  listen                  80;
  server_name     你要代理的域名;
  # 强制https跳转
  rewrite ^(.*) https://$server_name$1 permanent;
}

server {
  listen 443 ssl;

  # 代理域名
  server_name 你要代理的域名;

  # 证书配置
  ssl_certificate xxxxxx.crt; #证书路径
  ssl_certificate_key xxxxxx.key; #证书密钥路径

  ssl_session_timeout 5m;
  #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
  ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
  #请按照以下协议配置
  ssl_protocols TLSv1.2 TLSv1.3;
  ssl_prefer_server_ciphers on;

  location / {
    # 转发的本地地址
    proxy_pass http://localhost:web项目端口;

    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
  }

  error_page 404 /404.html;
  location = /40x.html {
  }

  error_page 500 502 503 504 /50x.html;
  location = /50x.html {
  }
}

(3) 重启nginx

nginx.exe -s reload
 
安装win服务重启方式:service.exe restart

二、解决访问跨域问题

例子:前端接口:8001,后端接口8002(前后端都没配置跨域)

(1)修改nginx配置文件(代理给6666端口,注意,6666端口不可以被占用)

server {
  # 监听端口
  listen       6666;
  # 监听地址
  server_name  localhost;

  # 转发的本地地址(前端)
  location / {
    proxy_pass http://localhost:8001;
  }
  # 转发的本地地址(后端)
  location /api {
    proxy_pass http://localhost:8002;
  }
}

(2)重启nginx

(3)测试前端和后端地址

访问地址端口已经变更,项目运行服务端口不变,直接代理给6666端口了

​原来:

前端地址:http://localhost:8001

后端地址:http://localhost:8002/api/getData

更改后:

前端地址:http://localhost:6666

后端地址:http://localhost:6666/api/接口地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值