1.nginx web 安装 配置
#systemctl stop firewalld
#systemctl disabled firewalld
#wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
#yum install nginx -y
#echo "welcome to china" >/usr/share/nginx/html/index.html
#systemctl start nginx.service
#curl 192.168.16.95
welcome to china
2.nginx proxy
proxy 192.168.16.95
web01 192.168.16.186
web02 192.168.16.187
#web01操作
[root@web01 ~]# yum install nginx -y
[root@web01 ~]# echo "welcome to web01" >/usr/share/nginx/html/index.html
[root@web01 ~]# systemctl start nginx.service
[root@web01 ~]# curl 192.168.16.186
welcome to web01
#web02操作
[root@web02 ~]# systemctl stop firewalld
[root@web02 ~]# echo "welcome to web02" >/usr/share/nginx/html/index.html
[root@web02 ~]# systemctl start nginx.service
[root@web02 ~]# curl 192.168.16.187
welcome to web02
#proxy 操作
[root@proxy ~]# vim /etc/nginx/nginx.conf
http {
upstream web {
server 192.168.16.186;
server 192.168.16.187;
}
server {
listen 80;
location / {
proxy_pass http://web;
}
}
}
[root@proxy ~]# systemctl reload nginx.service
#其它服务器curl
bogon:~ centos$ curl 192.168.16.95
welcome to web01
bogon:~ centos$ curl 192.168.16.95
welcome to web02
2.nginx 调度 轮询 权重 hash
#轮询
http {
upstream myapp1 {
server srv1.example.com;
server srv2.example.com;
server srv3.example.com;
}
server {
listen 80;
location / {
proxy_pass http://myapp1;
}
}
}
#权重
http {
upstream myapp1 {
server srv1.example.com weight=3;
server srv2.example.com;
server srv3.example.com;
}
server {
listen 80;
location / {
proxy_pass http://myapp1;
}
}
}
#hash
http {
upstream myapp1 {
ip_hash;
server srv1.example.com;
server srv2.example.com;
server srv3.example.com;
}
server {
listen 80;
location / {
proxy_pass http://myapp1;
}
}
}
4.nfs服务
#环境准备
nfs服务端 192.168.16.95
web01 192.168.16.186
web02 192.168.16.187
#nfs服务端
[root@proxy ~]# cat /etc/exports
/share 192.168.16.0/24(rw,sync,fsid=0)
[root@proxy ~]# mkdir /share
[root@proxy ~]# chmod o+w /share
[root@proxy ~]# cat /etc/exports
/share 192.168.16.0/24(rw,sync,fsid=0)
[root@proxy ~]# mkdir /share
[root@proxy ~]# chmod o+w /share
[root@proxy ~]# systemctl start rpcbind.service
[root@proxy ~]# systemctl start nfs-server.service
[root@proxy ~]# echo "192.168.16.95 proxy" >>/etc/hosts
[root@proxy ~]# exportfs
/share 192.168.16.0/24
[root@proxy ~]# showmount -e
Export list for proxy:
/share 192.168.16.187/24,192.168.16.186/24
#web01 操作
[root@bogon ~]# yum install rpcbind nfs-utils -y
[root@web01 ~]# systemctl start rpcbind.service
[root@web01 ~]# systemctl start nfs-server.service
[root@web01 ~]# showmount -e 192.168.16.95
Export list for 192.168.16.95:
/share 192.168.16.187/24,192.168.16.186/24
[root@web01 ~]# mount -t nfs 192.168.16.95:/share /usr/share/nginx/html/
[root@web01 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/cl-root 18G 4.6G 13G 26% /
devtmpfs 473M 0 473M 0% /dev
tmpfs 489M 0 489M 0% /dev/shm
tmpfs 489M 7.1M 482M 2% /run
tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sda1 509M 169M 341M 34% /boot
tmpfs 98M 0 98M 0% /run/user/0
192.168.16.95:/share 18G 5.0G 13G 29% /usr/share/nginx/html
#web02 操作
[root@bogon ~]# yum install rpcbind nfs-utils -y
[root@web02 ~]# systemctl start rpcbind.service
[root@web02 ~]# systemctl start nfs-server.service
[root@web02 ~]# showmount -e 192.168.16.95
Export list for 192.168.16.95:
/share 192.168.16.187/24,192.168.16.186/24
[root@web01 ~]# mount -t nfs 192.168.16.95:/share /usr/share/nginx/html/
[root@web02 ~]# mount -t nfs 192.168.16.95:/share /usr/share/nginx/html/
[root@web02 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/cl-root 18G 4.6G 13G 26% /
devtmpfs 473M 0 473M 0% /dev
tmpfs 489M 0 489M 0% /dev/shm
tmpfs 489M 7.1M 482M 2% /run
tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sda1 509M 169M 341M 34% /boot
tmpfs 98M 0 98M 0% /run/user/0
192.168.16.95:/share 18G 5.0G 13G 29% /usr/share/nginx/html
#proxy创建文件 web01 web02 查看
[root@proxy share]# echo "Nginx" >/share/index.html
[root@web01 html]# cat /usr/share/nginx/html/index.html
Nginx
[root@web02 ~]# cat /usr/share/nginx/html/index.html
Nginx
5.nginx反向代理+两台web+nfs共享存储实现集群配置
#在实验2和3的基础上
#在浏览器上访问proxy 192.168.16.95
#在web01上查看
[root@web01 html]# tail -f /var/log/nginx/access.log
192.168.16.95 - - [20/Mar/2017:17:10:21 +0800] "GET / HTTP/1.0" 304 0 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36" "-"
#在web02上查看
[root@web02 html]# tail -f /var/log/nginx/access.log
192.168.16.95 - - [20/Mar/2017:17:10:17 +0800] "GET / HTTP/1.0" 200 6 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36" "-"
#浏览器访问proxy,后端的两台nginx会轮询得到nfs服务器的文件
6. 源码安装nginx
[root@web01 html]#yum remove nginx
[root@web01 html]#useradd -s /sbin/nologin -M www
[root@web01 html]#yum -y install pcre pcre-devel openssl openssl-devel
[root@web01 html]#wget http://nginx.org/download/nginx-1.10.3.tar.gz
[root@web01 ~]# tar xf nginx-1.10.3.tar.gz
[root@web01 nginx-1.10.3]# cd nginx-1.10.3/
[root@web01 nginx-1.10.3]#./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-file-aio --with-stream
[root@web01]#make && make install
[root@web01~]#/usr/local/nginx/sbin/nginx -t
[root@web01~]#nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
[root@web01~]#nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@web01 ~]# echo "Hello Word" > /usr/local/nginx/html/index.html
[root@web01 ~]# /usr/local/nginx/sbin/nginx
[root@web01 ~]# curl 192.168.16.186
Hello Word