Nginx常见模块的使用 安装好nginx后或者搭建完lnmp环境后为了实现一些功能,则需要使用各种各样的模块 rewrite的使用 [iyunv@wang nginx]# vim nginx.conf
添加rewrite的选项 意思是访问/*.bmp会转为访问/index.php [iyunv@wang nginx]# vim nginx.conf [iyunv@wang nginx]# nginx -t [iyunv@wang nginx]# service nginxd restart 访问
和 一样,实现了重定定向 如果将配置文件更改为
则实现了允许192.168.2.100访问,不允许192.168.2.0网段其他的访问 access模块:来源控制 - vim /etc/nginx/nginx.conf 在sever站点里面添加内容
service nginx restart 允许192.168.88.10访问,阻止网段其他的地址访问 打开一台PC机,地址设为192.168.88.10,进行访问
再把地址修改成192.168.88.0网段内的其他地址,进行访问
实现了来源控制! auth模块:身份验证 因为httpd-tools带有htpasswd 工具,所以先安装httpd-tools 1.vim /etc/nginx/nginx.conf 在sever站点里面添加内容
- htpasswd -c /etc/nginx/.htpasswd zhangsan创建帐号,并输入密码
- service nginxd restart重启
打开浏览器进行测试
实现了身份验证! ssl模块:安全加密 - cd /etc/pki/tls/
- vim openssl.cof
更改文件,为其他机构也能颁发证书
更改默认值
3.echo "01">serial 记录序号 4.openssl genrsa 1024 >../CA/private/cakey.pem 产生私钥 5.cd /etc/pki/CA/ 6.chmod 600 private/cakey.pem改变权限 7.cd /etc/nginx/certs/ 8.openssl ca -in nginx.req -out nginx.cert为自身产生证书 9.mkdir /etc/nginx/certs 创建目录存放证书 10.cd /etc/nginx/certs/ 11.openssl genrsa 1024 >nginx.key 产生私钥 12.chmod 600 nginx.key 13.openssl req -new -key nginx.key -out nginx.req 14.openssl ca -in nginx.req -out nginx.cert 15.vim /etc/nginx/nginx.conf 打开443端口,加密访问
打开浏览器访问https://192.168.88.100
显示证书链 16.cd /etc/nginx/certs 17.cp /etc/pki/CA/cacert.pem ./ 18.cp nginx.cert ./nginx.cert.bak 19.cat nginx.cert.bak cacert.pem >nginx.cert 查看出现下面几个文件
打开浏览器访问https://192.168.88.100,再点击查看证书
证书路径,就能看到证书链
upstream health-check的使用 安装health-check模块需要安装低版本的nginx,高版本的nginx+需要付费才能使用,这里我使用的是1.0.11版本 [iyunv@wang ~]# tar -zxvf nginx-1.0.11.tar.gz -C /usr/local/src/ 拆解源码包 [iyunv@wang ~]# unzip healthcheck_nginx_upstreams-master 拆解healthcheck模块补丁 [iyunv@wang healthcheck_nginx_upstreams-master]# cd /usr/local/src/nginx-1.0.11/ [iyunv@wang nginx-1.0.11]# patch -p1
}
case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo "Usage: start|stop|restart" ;; esac 编辑脚本如此,保存退出 进行测试 [iyunv@wang init.d]# pkill -9 nginx 杀死进程 [iyunv@wang init.d]# chkconfig --add nginxd 加入启动 [iyunv@wang init.d]# chkconfig --list |grep nginx 差看 [iyunv@wang init.d]# service nginxd start [iyunv@wang ~]# cd /etc/nginx/ [iyunv@wang nginx]# vim nginx.conf 编辑配置文件 upstream backend { 35 server 192.168.2.50; 36 server 192.168.2.101; //对2.50和2.101进行服务 37 healthcheck_enabled; 38 healthcheck_delay 1000; 39 healthcheck_timeout 1000; 40 healthcheck_failcount 1; 41 # healthcheck_expected 'I_AM_ALIVE'; 42 healthcheck_send "GET /.health HTTP/1.0" ; 编辑为如此 location / { 54 root html; 55 index index.html index.htm; 56 proxy_pass http://backend; //根为html,对backend的池做代理 57 } [iyunv@wang nginx]# nginx -t [iyunv@wang nginx]# pkill -9 nginx [iyunv@wang nginx]# nginx [iyunv@wang nginx]service iptables stop [iyunv@wang nginx]setenforce 0 现在实现了轮询的功能,即请求分别发送至2.50 ,2.100,还有健康探测功能,即如果1台服务器坏掉,能够立即发现,不发送代理 先访问本机查看是否能够成功代理
实现了轮询的功能
应该探测的是 文件,没有这个文件所以显示down,下面建g个.health文件测试下
第一个服务区建了个.health文件,显示ok
|