什么是nginx?
简单了解一下什么是nginx
Nginx是一款高性能的反向代理服务器,可以实现http服务器,虚拟主机,反向代理,负载均衡,由俄罗斯的程序设计师Igor Sysoev所开发,占内存小,响应速度快
- Http服务器:可以提供http服务,做网页的静态服务器
- 虚拟主机:可以实现在一台服务器上模拟多个网站
- 反向代理,负载均衡,当网站的访问量达到一定程度的时候,单台服务器不能满足用户的请求,需要多台服务器做集群可以使用nginx做反向代理, 使多台服务器平均分担负载,减轻服务器压力,并且不会暴露服务器的真实ip
安装nginx
安装nginx之前需要安装所需要的依赖环境
- 安装gcc编译
yum -y install gcc gcc-c++ autoconf pcre pcre-devel make automake
- pcre安装
yum install -y pcre pcre-devel
- zlib安装
yum install -y zlib zlib-devel
- openssl 安装 安装
yum install -y openssl openssl-devel
一切安装就绪后开始安装我们的主角nginx
使用wget命令下载rpm安装包
wget -c https://nginx.org/download/nginx-1.10.1.tar.gz
tar -zxvf nginx-1.10.1.tar.gz
cd nginx-1.10.1
./configure --prefix=/usr/local/nginx
make
make install
启动nginx
cd /usr/local/nginx/sbin
./nginx
打开浏览器访问此机器的 IP,如果浏览器出现 Welcome to nginx! 则表示 Nginx 已经安装并运行成功
常用操作命令
./nginx //启动nginx
./nginx -s stop //停止
./nginx -s reload //重载配置文件
实现反向代理
什么是反向代理?
- 反向代理(Reverse Proxy)方式是指以代理服务器来接受请求,然后将请求转发给内网上的服务器,并将从服务器上得到的结果返回给请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器,不暴露真实IP地址
nginx.conf 配置
server { listen 80; server_name xxxx.com; location / { proxy_pass http://127.0.0.1:8080; index index.html index.htm; } }
server_name:虚拟域名
proxy_pass:虚拟域名映射ip端口
实现负载均衡
什么是负载均衡?
- 将请求通过内部算法将请求平均分担到多个服务器上,用于分担单个服务启压力
- 负载均衡有三种配置策略
1、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
2、指定权重upstream backserver { server 192.168.0.14; server 192.168.0.15; }
指定轮询几率,weight用于指定访问比率,用于后端服务器性能不均的情况。
3、IP绑定 ip_hashupstream backserver { server 192.168.0.14 weight=10; server 192.168.0.15 weight=1; }
每个请求访问时会分配一个ip跟服务器绑定,这样每个请求都会固定访问一个后端服务器。
session解决方案的一种upstream backserver { ip_hash; server 192.168.0.14:88; server 192.168.0.15:80; }
- 配置代码
upstream backserver { //配置负载均衡
server 127.0.0.1:8080;
server 127.0.0.1:8081;
}
server {
listen 80;
server_name xxxx.com; //虚拟域名
location / {
proxy_pass http://backserver; //指向upstream
index index.html index.htm;
proxy_connect_timeout 1
proxy_send_timeout 1;
proxy_read_timeout 1;
}
}
upstream:配置负载均衡策略
proxy_pass:指向负载均衡配置