Nginx服务器
一:什么是Nginx?
二:如何在Linux中搭建Nginx服务器?
先不要创建/usr/local/nginx
目录,因为安装成功后会自动创建。
环境Centos7.4
在Linux终端输入命令行的主要步骤:
下载
wget http://nginx.org/download/nginx-1.14.0.tar.gz
解压
tar -zxvf nginx-1.14.0.tar.gz
安装
./configure
如果安装错误,提示需要其它环境,请参考下面
安装 make
yum -y install gcc automake autoconf libtool make
安装 g++
yum install gcc gcc-c++
安装 PCRE库
yum -y install pcre pcre-devel
安装 Zlib
yum -y install zlib zlib-devel
如果./configure
安装成功,只需要再执行两个命令:
make
make install
查看是否安装成功
cd /usr/local/nginx
如果安装成功,则会出现下列目录:
conf html logs sbin
切换到sbin目录
cd /sbin
启动程序
./nginx
常见的错误
三:Nginx的反向代理和负载均衡
正向代理
反向代理
什么是负载均衡
基于反向代理的原理实现负载均衡
四:Nginx负载均衡的实现
负载均衡配置文件
默认配置文件nginx.conf
很重要,我们一般是新建一个配置文件,在启动时指定加载。
[root@yueshutong conf]# ls //查看目录
fastcgi.conf koi-win scgi_params
fastcgi.conf.default mime.types scgi_params.default
fastcgi_params mime.types.default uwsgi_params
fastcgi_params.default nginx.conf uwsgi_params.default
koi-utf nginx.conf.default win-utf
[root@yueshutong conf]# touch fzjh.conf //新建负载均衡配置文件
编辑fzjh.conf
配置文件
vi fzjh.conf
worker_processes 1;#工作进程的个数,一般与计算机的cpu核数一致
events {
worker_connections 1024;#单个进程最大连接数(最大连接数=连接数*进程数) 并发
}
http {
include mime.types; #文件扩展名与文件类型映射表
default_type application/octet-stream;#默认文件类型
sendfile on;#开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。
keepalive_timeout 65; #长连接超时时间,单位是秒
gzip on;#启用Gizp压缩
#服务器的集群
upstream myproject { #服务器集群名字
server 220.181.111.188:80 weight=1;#服务器配置 weight是权重的意思,权重越大,分配的概率越大。
server 42.121.252.58:80 weight=2;
}
#当前的Nginx的配置
server {
listen 80; #监听80端口,可以改成其他端口
server_name localhost; ############## 当前服务的域名
location / { ##配置路径/下实现负载均衡
proxy_pass http://myproject; ##对应哪个服务器集群
proxy_redirect default;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html; #根目录
}
}
}
我们在nginx目录下执行命令,启动负载均衡
./sbin/nginx -c ./conf/fzjh.conf
然后尝试访问你的服务器,多访问几次,你会发现它会访问2次csdn网站,1次百度。说明我们的负载均衡已经部署完毕。
如何关闭Nginx服务器
1.查看nginx进程号
ps -ef|grep nginx
2.kill掉进程即可 (1709是第二列的进程号)
kill 1709
或者
killall -9 nginx
五:HTTP Upstream 模块
1.ip_hash指令
实例
此时不应该使用weight权重。
http {
....
upstream myproject {
ip_hash; #实现会话跟踪
server 140.205.140.234;
server 61.135.169.125;
}
....
}
六:其他负载均衡实现方式