第一次使用nginx ,
先看配置
```
server {
listen 80; #监听的80端口
listen 443 ssl; #监听https 443 端口
server_name admin.yitan.com;#匹配访问域名
ssl_certificate 1635204.pem;#证书信息 不加路径默认是conf 文件下去找
ssl_certificate_key 1635204.key;#私钥位置 不加路径默认是conf 文件下去找
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;#session 的超时时间
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;#指定密码为openssl支持的格式
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;#密码加密方式
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://localhost:8808; #跳转的服务器内部地址
root html;
index index.html index.htm;
}
}
```
启动nginx sbin 目录 ./nginx
访问 admin.yitan007.com 进入登录页面
输入账号密码时 ,请求后台登录成功 写入cookie
跳转到首页时走后台拦截器 获取不到cookie
前端 f12 也查不到cookie 最开始感觉应该是没有写进去
但是仔细想了一下应该不会是tomcat 的问题,得从nginx 配置上下手
看了一眼nginx 的配置,以为是https 的原因,就注释了这套代码 重写了一套配置。还是不行!
思考了一下前端请求后台到后台写cookie
既然写入cookie 没有报错,那很有可能是 通过转发 域名没有带过去
后来查阅了一些资料 发现自己的代码少了一段配置
proxy_set_header Host $host;
将域名也通过nginx 转发过去就好了
它的值在请求包含“Host”请求头时为“Host”字段的值,在请求未携带“Host”请求头时为虚拟主机的主域名