Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。
其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,
中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

红帽7系统默认是没有nginx这个安装包的,所以我们添加nginx的yum

vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/rhel/7/$basearch/
gpgcheck=0
enable=1

yum clean all
yum makecache

现在就可以进行yum安装了
yum install -y nginx

我们先来熟悉一下nginx
vim /etc/nginx/conf.d/default.conf 默认配置目录
如图所示:网站默认路径是 /usr/share/nginx/html
RHEL7下 nginx 的详细配置
我们来更改下网站目录为 /home/www/tang/
RHEL7下 nginx 的详细配置
mkdir -p /home/www/tang
echo "tang" > /home/www/tang/index.html #首页内容
实验环境记得关闭防火墙很Selinux
systemctl stop firewalld
setenforce 0
systemctl restart nginx
客户端访问:ok
RHEL7下 nginx 的详细配置
网站配置多站点有三种方法,分别是基于IP,基于端口,跟基于域名的
首先我们先来配置基于IP的
单网卡配置多IP(此方法重启会失效)
ifconfig ens33:0 192.168.120.74 netmask 255.255.255.0 up
ifconfig ens33:1 192.168.120.75 netmask 255.255.255.0 up
RHEL7下 nginx 的详细配置

创建各自及首页
mkdir -p /home/www/74
mkdir -p /home/www/75
echo "192.168.120.74" > /home/www/74/index.html
echo "192.168.120.75" > /home/www/75/index.html
cd /etc/nginx/conf.d/
vim 74.conf
RHEL7下 nginx 的详细配置

vim 75.conf
RHEL7下 nginx 的详细配置

systemctl restart nginx

客户端测试,网页访问192.168.120.74跟192.168.120.75,会出现不同的首页
RHEL7下 nginx 的详细配置

RHEL7下 nginx 的详细配置

基于IP的多站点配置完成了, 这里可能有人会问,我有些网站别人需要输入密码才能访问要怎么实现。
网站加密
yum -y install httpd-tools
vim /etc/nginx/conf.d/74.conf
RHEL7下 nginx 的详细配置

auth_basic "Basic Auth"; //认证命名
auth_basic_user_file "/etc/nginx/.htpasswd"; //用户密码认证路径

    htpasswd -c /etc/nginx/.htpasswd tang   #生成帐号密码(记得路径就是图上指定的路径)

RHEL7下 nginx 的详细配置
客户端访问192.168.120.74测试:(输入密码才可以出现内容)
RHEL7下 nginx 的详细配置

接下来我们来配置基于端口的多网站,配置跟上面基本相同
mkdir -p /home/www/8888
mkdir -p /home/www/9999
echo "8888" > /home/www/8888/index.html
echo "9999" > /home/www/9999/index.html

cd /etc/nginx/conf.d/
vim 8888.conf
RHEL7下 nginx 的详细配置

vim 9999.conf
RHEL7下 nginx 的详细配置

客户端测试:
RHEL7下 nginx 的详细配置

RHEL7下 nginx 的详细配置

基于端口也配置完成了,是不是很简单,现在我们来配置最后一个基于域名的,需要配置dns解析服务器才能实验,
配置dns过去我就省略了,不会的看我前面的笔记
dns解析
RHEL7下 nginx 的详细配置

mkdir -p /home/www/aaa
mkdir -p /home/www/bbb
echo "aaa" > /home/www/aaa/index.html
echo "bbb" > /home/www/bbb/index.html

cd /etc/nginx/conf.d/
vim aaa.conf
RHEL7下 nginx 的详细配置

vim bbb.conf
RHEL7下 nginx 的详细配置

systemctl restart nginx

客户端测试(客户端dns需要指定到服务器IP)
RHEL7下 nginx 的详细配置

RHEL7下 nginx 的详细配置

好了,虚拟主机的三种方法上面都配置完成了,命令区别基本不大
现在我们来认识下nginx 的负载均衡吧
逻辑拓扑:
RHEL7下 nginx 的详细配置

当用户向nginx负载均衡请求访问网站,nginx会将请求转换给后天服务器

1、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
vim /etc/nginx/conf.d/default.conf
添加在配置文件的最后面
upstream tang {
server 192.168.120.76;
server 192.168.120.77;
}
location / {
proxy_pass http://tang; #名字选择上面定义的名字
proxy_redirect default;

RHEL7下 nginx 的详细配置

systemctl restart nginx
客户端服务测试:
RHEL7下 nginx 的详细配置

weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的 情况。
upstream tang {
server 192.168.120.76 weight=4; #weight 是权重,默认1,越大,概率越高
server 192.168.120.77 weight=6;
server 192.168.120.78 weight=5 backup; #backup 是备用服务器,服务器全部崩溃后启用
}

location / {
proxy_pass http://tang;
proxy_redirect default;

负载均衡配置也计较简单,这里就不测试了,留给你们试试看吧!!!