标签搜索

目 录CONTENT

文章目录

Nginx配置https代理

陈铭
2023-05-08 / 0 评论 / 0 点赞 / 237 阅读 / 504 字 / 正在检测是否收录...

说明

前提条件

  • 已准备好 https 证书
  • 已安装好 nginx

证书安装

在 /etc/nginx 目录内创建 cert 文件夹,将已获取的 www.domain.com.pem 证书文件和 www.domain.com.key 私钥文件拷贝到文件夹中

没有证书可以自己自签名一个,域名随便编一个,后面ngx配置文件填上这个瞎编的域名。浏览器访问网站时用ip访问(域名瞎编的)

openssl req -newkey rsa:2048 -nodes -keyout certs/server.key -x509 -days 36500 -out certs/server.crt

创建配置文件的目录

在 /etc/nginx/conf.d 目录内新建一个文件 www.domain.com.conf,添加如下配置

server {
  # 监听https的443端口
  listen 443 ssl;
  # 证书绑定的域名
  server_name www.domain.com;
	
  # 证书文件的位置
  ssl_certificate cert/www.domain.com.pem;
  # 私钥文件的位置
  ssl_certificate_key cert/www.domain.com.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;
	
  # 静态页面,访问根目录会去找 /macc/static/index.html
  location / {
    root /macc/static;
    index index.html
  }

  # 后端API
  location /rycem/api/ {
    # 为单独的server配置日志位置
    access_log /var/log/nginx/cem-access.log;
    error_log /var/log/nginx/cem-error.log notice;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_pass http://127.0.0.1:8081$request_uri;;
  }	
}

server {
  # 监听80端口
  listen 80;
  # 证书绑定的域名
  server_name www.domain.com;
  # http重定向为https
  rewrite ^/(.*) https://$server_name/$1 permanent;
}

可以注意到,这个配置文件配置了两个 server 代码块。这是因为一个监听 443 端口,一个监听 80 端口。

当访问 http://www.domain.com 时,将进入监听 80 端口的 server 代码块,它会将 http 重定向为 https,进入 监听 443 端口的 server 代码块

如果访问的是 https://www.domain.com,将会进入监听 443 端口的 server 代码块

0

评论区