nginx-专题,搭建https,配置nginx日志,配置http转https并解决post转get问题,反向代理参数丢失问题

一、nginx搭建https协议支持

https://blog.csdn.net/huanger_/article/details/113184950

二、nginx配置日志打印

access_log用来定义日志级别,日志位置。语法如下:
日志级别: debug > info > notice > warn > error > crit > alert > emerg

1、使用默认格式的日志

把默认配置文件中http模块的日志配置放开即可

#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '    #                  '$status $body_bytes_sent "$http_referer" '    #                  '"$http_user_agent" "$http_x_forwarded_for"';    #access_log  /usr/local/nginx/logs/access.log  main;

main 代表格式的名称

access_log    [配置文件的路径]  [格式的名称]

2、使用json格式的配置

log_format main escape=json '{ "@timestamp": "$time_local", '                       '"remote_addr": "$remote_addr",'                       '"costime": "$request_time",'                       '"status": $status,'                       '"x_forwarded": "$http_x_forwarded_for",'                       '"referer": "$http_referer",'                       '"request": "$request",'                       '"dm":$request_body,'                       '"agent": "$http_user_agent" }';    access_log  /usr/local/nginx/logs/access.log main;

escape=json:解决打印的中文乱码问题,需要nginx版本在1.15.1以上

后面传入json串,key自定义,value使用nginx的表达式,按需配置即可

常用的表达式

  • $remote_addr$http_x_forwarded_for 记录客户端IP地址

  • $remote_user记录客户端用户名称

  • $request记录请求的URL和HTTP协议(GET,POST,DEL,等)

  • $status记录请求状态

  • $body_bytes_sent发送给客户端的字节数,不包括响应头的大小; 该变量与Apache模块mod_log_config里的“%B”参数兼容。

  • $bytes_sent发送给客户端的总字节数。

  • $connection连接的序列号。

  • $connection_requests 当前通过一个连接获得的请求数量。

  • $msec 日志写入时间。单位为秒,精度是毫秒。

  • $pipe如果请求是通过HTTP流水线(pipelined)发送,pipe值为“p”,否则为“.”。

  • $http_referer 记录从哪个页面链接访问过来的

  • $http_user_agent记录客户端浏览器相关信息

  • $request_length请求的长度(包括请求行,请求头和请求正文)。

  • $request_time 请求处理时间,单位为秒,精度毫秒; 从读入客户端的第一个字节开始,直到把最后一个字符发送给客户端后进行日志写入为止。

  • $time_iso8601 ISO8601标准格式下的本地时间。

  • $time_local通用日志格式下的本地时间。

三、nginx配置http重定向到https

1、方法1

在server的80端口下添加如下即可

return 301 https://$host$request_uri;

配置好后,会发现重定向时post请求会被转为get请求,这是因为301是永久重定向,将301改成307即可解决

$host:请求的服务端的地址

$request_uri:请求中usl中的参数,不配置此项则会在重定向时丢失参数,或者直接使用http代理后端服务也会丢失参数部分,导致参数无法传递

2、方法二

在server的80端口下添加如下即可

#rewrite  ^(.*)$ https://$host$1?$args;

$args:代表参数

(0)

相关推荐

  • 号称下一代日志收集系统!来看看它有多强

    后面随着架构的优化与演进,又引入另一个轻量级的组件 Filebeat,Filebeat和Logstash一样属于日志收集处理工具,基于原先 Logstash-fowarder 的源码改造出来的.与Lo ...

  • nginx配置基础之rewrite

    概述 重写URL是非常有用的一个功能,因为它可以让你提高搜索引擎阅读和索引你的网站的能力:而且在你改变了自己的网站结构后,无需要求用户修改他们的书签,无需其他网站修改它们的友情链接:它还可以提高你的网 ...

  • 记录一下 http status code

    HTTP Method 较为简单,我们常用的习惯如下: 一般查询我们都会使用 GET 方法, 创建新的记录使用 POST 方法 更新已有数据使用 PUT 方法 更新已有数据部分属性使用 PATCH 方 ...

  • 如何配置Nginx压缩实现性能优化?怎么学Linux系统

    如何配置Nginx gzip压缩实现性能优化?是每个Linux运维管理人员都需要掌握的技能.互联网时代发展迅速,Linux运维技术的需求更多推进不少.市场对于Linux运维人才的需求也在逐渐加大.Li ...

  • nginx 配置实例-反向代理

    </span> </div> <!--一个博主专栏付费入口--> <!--一个博主专栏付费入口结束--> <link rel="styl ...

  • Centos7上配置nginx的负载均衡

    前言 在配置nginx负载均衡前.我们需要明白几个名词的概念 注: 如果不小心忘了tomcat和nginx的启动,关闭命令,可参考写在文章最后的命令 一 重要的概念理解 1 什么是nginx呢? Ng ...

  • 基于.NetCore3.1系列 —— 日志记录之日志配置揭秘

    一.前言 在项目的开发维护阶段,有时候我们关注的问题不仅仅在于功能的实现,甚至需要关注系统发布上线后遇到的问题能否及时的查找并解决.所以我们需要有一个好的解决方案来及时的定位错误的根源并做出正确及时的 ...

  • Nginx环境搭建与使用

    一.背景 之前测试的项目前后端的"路由"(负责把前端发过来的请求转发到相应的后端服务上)要用Nignx来取代原来的tomcat的http server功能,做这个替换的原因是Nig ...

  • Windows日志配置方式 到网科的日志硬件

    Windows日志记录Windows设备产生的日志,包括Windows设备上应用程序相关的信息.Windows系统 本身的信息,以及登录.登出等安全信息.HSA系统只有在安装HSLogMonitor客 ...

  • SpringBoot日志配置及输出

    通过上节的学习,我们了解了SpringBoot日志框架的选用及统一,本节我们将重点介绍SpringBoot日志的配置及输出. 默认配置 SpringBoot默认使用SLF4J+Logback记录日志, ...

  • IIS反向代理/Rewrite/https卸载配置

    目标,使IIS具有类似与Nginx的功能,将指定域名的请求重定向到IIS内.IIS外.其他机器上的其他端口,并且实现https卸载功能 重点预告: 1.安装最新版urlrewrite(微软开发的)插件 ...

  • Centos7环境下搭建Nginx反向代理多个Tomcat的负载均衡集群

    我要.发光_2332019-03-22 23:25:34 分类专栏:大学作业 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:htt ...