linux下安装nginx
1、下载压缩包
2、安装依赖
yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
3、将压缩包移动到 /usr/local/目录下解压并进入根目录
tar -zxvf nginx-1.9.9.tar.gz
cd nginx-1.9.9
4、安装
./configure –prefix=/usr/local/nginx
make
make install
5、开启防火墙需要放行的端口
firewall-cmd –list-all 查看开放的端口
sudo firewall-cmd –add-port=80/tcp –permanent 开启防火墙80端口
firewall-cmd –reload 重启防火墙
6、常见操作
cd /usr/local/nginx/sbin
./nginx -v 查看版本
./nginx 启动
./nginx -s stop 关闭
./nginx -s reload 重启(重新加载)
7、配置高可用
需要两台服务器分别安装nginx,一台主nginx一台辅nginx。当主nginx宕机时辅nginx启动工作。
用户通过一个虚拟ip对nginx进行访问(需要安装keepalived)
yum install keepalived -y 安装keepalived
cd /etc/keepalived 进入安装目录
vim keepalived.conf 修改配置
#心跳检查脚本设置
vrrp_script chk_nginx {
script "/etc/keepalived/check_nginx.sh" # 心跳检测角本路径
interval 2 #脚本执行间隔,每2s检测一次
weight -5 #脚本结果导致的优先级变更,检测失败(脚本返回非0)则优先级 -5
fall 3 #检测连续2次失败才算确定是真失败。会用weight减少优先级(1-255之间)
rise 2 #检测1次成功就算成功。但不修改优先级
}
#主备设置
vrrp_instance VI_1 {
state MASTER|BACKUP # MASTER为主机,BACKUP为辅机
virtual_router_id num #虚拟路由标识,MASTER和BACKUP必须是一致的
interface ens33 #网卡名称
priority 100 #定义优先级,数字越大,优先级越高如:主100,辅90
advert_int 2 #设定MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒
#mcast_src_ip 192.168.0.118 #发送多播数据包时的源IP地址
#nopreempt
#smtp_alert
#lvs_sync_daemon_interface string
#设置验证类型和密码。主从必须一样
authentication {
auth_type PASS|AH #设置vrrp验证类型
auth_pass kang #设置vrrp验证密码,在同一个vrrp_instance下,MASTER与BACKUP必须使用相同的密码才能正常通信
}
#虚拟地址配置
virtual_ipaddress {
# 配置虚拟ip -- 即替代nginx的ip地址(浏览器访问地址),可配置多个.
##如果两个nginx的ip分别是192.168.232.201,...205,则此处的虚拟ip跟它俩同一个网段即可(主从配置要相同)
192.168.111.150
192.168.111.190
}
#使用脚本设置
track_script {
chk_nginx #心跳脚本,即在 vrrp_script 部分指定的名字
}
}
心跳检查脚本(配置nginx的ip与port) ---------------------- check_nginx.sh
脚本一:检测ip
#!/bin/bash
count=0
for (( k=0; k<2; k++ ))
do
check_code=$( curl --connect-timeout 3 -sL -w "%{http_code}\\n" http://localhost:81 -o /dev/null )
if [ "$check_code" != "200" ]; then
count=count +1
continue
else
count = 0
break
fi
done
if [ "$count" != "0" ]; then
killall keepalived
exit 1
else
exit 0
fi
脚本二:检测nginx
#!/bin/bash
A=`ps -C nginx --no-header |wc -l`
if [ $A -eq 0 ];then
/usr/local/nginx/sbin/nginx
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
exit 1
else
exit 0
fi
else
exit 0
fi
启动keepalived
cd /bin
systemctl start keepalived.service
systemctl restart keepalived.service
ip add show ens33 查看网卡上启动的ip
1、全局快
配置一些影响nginx整体运行的配置
2、event块
影响nginx与用户的网络连接状态
3、http块
操作最频繁的块
一个server块就是一个虚拟主机。
#监听的端口,也可以写为192.168.0.5:8080 如此些后,server_name将不起作用
listen 8080;
server_name 192.168.0.5;
1.完全匹配
location = / {
#代理(转发)到哪个目的地址
prosy_pass: 192.168.0.8:8082/kang/index;
}
2.优先匹配
location ~ / {
prosy_pass: 192.168.0.9:8082/kang/index;
}
3.通用匹配
location / {
#没有子路径时使用root来指定静态文件路径,若用alias指定静态路径的话末尾需要带'/',
#若是带子目录的请求需要用alias且末尾不加'/'
root /html
#指定上面目录中的首页,默认为index.html
index index.html;
prosy_pass: 192.168.0.8:8082/kang/getUser;
}
#带有子目录的地址
location /a {
#是否开启查看nginx的状态信息功能
stub_status on;
alias /html;
prosy_pass: 192.168.0.9:8082/kang/getUser;
#允许指定的ip进行访问
allow 192.168.0.8;
#除了以上配置的可以访问的地址外都不允许访问
deny all;
}
#目录下载功能
location /download {
alias /usr/local/nginx/html/download;
autoindex on;
}
#跳转功能 -- 访问 192.168.0.5:8080将跳转到百度页面
location / {
return 302 http://www.baidu.com;
}
#负载均衡 -- 默认为轮询算法。还有:轮询加权(weight=n)、iphash(ip绑定)、fair(根据相应时间快的优先分配)等
upstream kang {
server 192.168.0.8:8081;
server 192.168.0.8:8082;
server 192.168.0.9:8081;
server 192.168.0.9:8082;
}
location / {
proxy_pass http://kang;
}