Centos安装nginx
nginx下载,安装
下载需要的环境
yum install gcc-c++
yum -y install pcre pcre-devel
yum -y install zlib zlib-devel
yum -y install openssl openssl-devel
下载源码文件
wget http://nginx.org/download/nginx-1.13.11.tar.gz
安装
将下载好的文件进行解压
tar -zxvf nginx-1.13.11.tar.gz
创建nginx-source源码文件,将解压后的文件移动到nginx-source的根路径下,此文件为源码文件
在创建一个存储编译nginx后的文件路径
进入nginx的源码文件下进行编译路径的设置
/usr/local/nginx/nginx为编译后的存放路径
./configure --prefix=/usr/local/nginx/nginx
在源码文件夹下面执行如下:
进行make编译
最后make install
进入存储编译文件sbin路径启动nginx
./nginx
nginx的文件目录结构说明
1、*_tmp目录:共有5个temp结尾的目录,用于存放nginx运行时产生的临时文件
2、conf目录:存放配置文件的目录,包含主配置文件nginx.conf,是我们经常修改的配置文件
3、html目录:默认存放了nginx的错误页面和欢迎页面等
4、logs目录:默认存放了访问日志和错误日志文件
5、sbin目录:默认存放了nginx的二进制命令,常用于nginx服务启动、停止等管理工作
负载均衡
轮询法(默认)
将请求按顺序轮流地分配到后端服务器上,他均衡对待后端的每一台服务器,而不关心服务器实际的连接数和当前的系统负载
upstream tomcat_server{
server 192.168.10.11 weight=1;
server 192.168.10.12 weight=1;
}
加权轮询法
不同的后端服务器可能机器的配置和当前系统的负载并不相同,因此他们的抗压能力不同,
给配置高、负载低的机器配置更高的权重,让其处理更多的请求配置低、负载高的机器,
给其分配较低的权重,降低其系统负载。加权轮询很好地将请求顺序且按照权重分配到后端
weight的值越大分配到的访问概率越高
upstream tomcat_server{
server 192.168.10.11 weight=1;
server 192.168.10.12 weight=3;
}
源地址哈希法
根据获取客户端的IP地址,通过哈希函数计算得到一个数值
用该数值对服务器列表的大小进行取模运算,得到的结果便是服务端要访问服务器的序号
采用源地址哈希法进行负载均衡,同一IP地址的客户端,当后端服务器列表不变时,他每次都会映射到同一台服务器进行访问
可以保证来自同一ip的请求被打倒固定的机器上,可以解决session问题
upstream tomcat_server{
ip_hash;
server 192.168.10.11 weight=1;
server 192.168.10.12 weight=3;
}
最小连接数
由于后端服务器的配置不尽相同,对于请求的处理有快有慢,最小连接数法根据后端服务器当前的连接情况,动态地选取其中当前积压连接
数最少的一台服务器来处理当前的请求,尽可能地提高后端服务的利用效率,将负责合理地分流到每一台服务器
upstream tomcat_server{
least_coon;
server 192.168.10.11 weight=1;
server 192.168.10.12 weight=3;
}
Fair
比weight、ip_hash更智能的负载均衡算法
可以根据页面大小和加载时间短暂地进行负载均衡,也就是根据后台服务器的响应时间来分配请求,响应时间短的优先分配
Nginx本身不支持fair,如果需要这种调度算法,则必须安装upstream_fair模块
upstream tomcat_server{
fair;
server 192.168.10.11 weight=1;
server 192.168.10.12 weight=3;
}
url_hash
按访问的URL的哈希结果来分配请求,使每个URL定向到一台后端服务器
可以进一步提高后端缓存服务器的效率
Nginx本身不支持url_hash,如果需要这种调度算法,则必须安装Nginx的hash软件包
upstream tomcat_server{
hash $request_uri;
server 192.168.10.11 weight=1;
server 192.168.10.12 weight=3;
}
模块安装
Fair
GitHub搜索nginx-upstream-fair-master
下载后解压,在nginx的源码目录下输入如下命令
./configure --prefix=/opt/nginx --add-module=/opt/nginx-upstream-fair-master
说明:
--prefix后面是nginx编译后的文件存放路径
--add-module为模块的解压路径
执行玩添加命令后,在源码目录进行make编译
url_hash
GitHub搜索nginx_upstream_hash-master
添加步骤同上
安全配置
- 1、隐藏版本号
在http标签中配置
在http模块添加
server_tokens off;
- 2、ip的黑白名单设置
白名单案例
只能192.168.1.1这个ip进行访问,其他都不能访问
location / {
allow 192.168.1.1;
deny all;
}
黑名单案例
禁止这一个ip(192.168.1.1)访问,其他都可以访问
location / {
deny 192.168.1.1;
allow all;
}
- 3、https证书配置
nginx没有ssl模块,所以在配置之前要添加ssl模块
./configure --prefix=/usr/local/nginx/nginx --with-http_stub_status_module --with-http_ssl_module
make
修改nginx.conf文件
server {
listen 443;
server_name localhost;
root html;
index index.html index.htm;
ssl on;
ssl_certificate 证书.pem文件路径;
ssl_certificate_key 证书.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;
location / {
root html;
index index.html index.htm;
}
}