分类目录归档:Nginx

Nginx 配置之安全篇

一、隐藏不必要的信息

大家可以看一下我的博客请求响应头,有这么一行 server: nginx,说明我用的是 Nginx 服务器,但并没有具体的版本号。由于某些 Nginx 漏洞只存在于特定的版本,隐藏版本号可以提高安全性。这只需要在配置里加上这个就可以了:

server_tokens off;

继续阅读

Nginx 配置之性能篇

本文提到的一些 Nginx 配置,需要较高版本 Linux 内核才支持。在实际生产环境中,升级服务器内核并不是一件容易的事,但为了获得最好的性能,有些升级还是必须的。很多公司服务器运维和项目开发并不在一个团队,一方追求稳定不出事故,另一方希望提升性能,本来就是矛盾的。好在我们折腾自己 VPS 时,可以无视这些限制。

继续阅读

Linux防火墙设定(iptables的使用)

 一、四种tables

  • filter (过滤器):主要跟进入 Linux 本机的封包有关,这个是预设的 table 喔!
INPUT:主要与想要进入我们 Linux 本机的封包有关;
OUTPUT:主要与我们 Linux 本机所要送出的封包有关;
FORWARD:这个咚咚与 Linux 本机比较没有关系, 他可以『转递封包』到后端的计算机中,
与下列 nat table 相关性较高。

继续阅读

HTTP负载均衡/反向代理相关参数测试

一、测试目的

  • 弄清楚HTTP Upstream 模块中Server指令的max_fails与fail_timeout参 数的关系、它们对后端服务器健康情况的检查起到了什么作用、它们的取值对Http proxy模块中的其它指令是否有直接或间接的影响等
  • 测试HTTP Proxy模块中proxy_next_upstream、proxy_connect_timeout、proxy_read_timeout、 proxy_send_timeout指令的作用、对nginx性能的影响、对后端服务器响应的处理等

继续阅读

使用nginx后如何获取用户ip及原理解释

问题背景:

在实际应用中,我们可能需要获取用户的ip地址,比如做异地登陆的判断,或者统计ip访问次数等,通常情况下我们使用request.getRemoteAddr()就可以获取到客户端ip,但是当我们使用了nginx作为反向代理后,使用request.getRemoteAddr()获取到的就一直是nginx服务器的ip的地址,那这时应该怎么办? 继续阅读

Nginx location匹配规则

一、匹配命令

  • ~      表示执行一个正则匹配,区分大小写
  • ~*    表示执行一个正则匹配,不区分大小写
  • ^~    表示普通字符匹配,如果该选项匹配,只匹配该选项,不匹配别的选项,一般用来匹配目录
  • =      进行普通字符精确匹配
  • @     定义一个命名的 location,使用在内部定向时,例如 error_page, try_files

继续阅读

Nginx upstream的分配方式

1、轮询(默认)

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

2、weight

指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

继续阅读

CentOS下查看SeLinux状态及关闭

setenforce是Linux的selinux防火墙配置命令 执行setenforce 0 表示关闭selinux防火墙。
setenforce命令是单词set(设置)和enforce(执行)连写,另一个命令getenforce可查看selinux的状态。

一、查看SELinux状态:

/usr/sbin/sestatus -v      ##如果SELinux status参数为enabled即为开启状态
SELinux status:            enabled
Current mode:              permissive

SELinux status:            enabled
Current mode:              enforcing

继续阅读

sendfile详解

在apache,nginx,lighttpd等web服务器当中,都有一项sendfile相关的配置,在一些网上的资料都有谈到sendfile会提升文件传输性能,那sendfile到底是什么呢?它的原理又是如何呢?

继续阅读