Nginx
1、准备工作
下载安装:nginx.org 下载1.10包
放到家目录下 解压
tar -zxf nginx-1.10.1.tar.gz
源码安装需要三步:
在nginx解压后的目录内进行操作(确定80端口未被占用)
1. ./configure
./configure --prefix=/usr/local/lnmp/nginx(默认安装位置) --with-http_ssl_module (自动编译)--with-http_stub_status_module(测试模块)
提示错误:缺少安装包
yum install pcre-devel -y yum install -y openssl-devel
2. make (编译)
3. make install (生成)
cd /usr/local/lnmp/nginx/sbin/ ./nginx (打开nginx)
curl -I 172.25.15.11 (可以查看到)
或者用火狐浏览器查看 可以查看到
2、删除卸载 nginx
在 /usr/local/lnmp/nginx/sbin/ 下 执行 ./nginx -s stop (停止nginx)
rm -fr /usr/local/lnmp/nginx
在 解压后的目录内 make clean
或者干脆点:删除家目录下的 解压后的文件 重新解压。
3、隐藏nginx版本号 关闭测试模式(会导致软件很大)
重新解压后 进入解压后的目录内
vim src/core/nginx.h (隐藏版本号)
vim auto/cc/gcc (关闭测试模式)
注释掉 179行 然后 进行 ./configure && make && make install
链接nginx 到系统下 可以直接执行nginx命令
ln -s /usr/local/lnmp/nginx/sbin/nginx /usr/local/sbin/
which nginx (可以查看到nginx)
在系统下 输入 nginx (开启)
nginx -s stop (关闭)
nginx -s reload (重载)
nginx -t 检查配置文件语法问题
4、动态模块和静态模块
重新配置一个nginx
./configure --prefix=/tmp/nginx --with-ngx_mail_module=dynamic(添加动态模块)
在/tmp/nginx/ 下多了一个modules (目录内的模块为动态模块)
可以在配置文件 /tmp/nginx/conf/nginx.conf 中的第一行调用动态模块
(apache中早就支持nginx刚出)
5、给nginx进程添加用户
ps aux 可以查看到 nginx进程的worker为nobody
创建一个nginx用户:useradd -s /sbin/nologin nginx
在主配置文件中修改 /usr/local/lnmp/nginx/conf/nginx.conf
Io负用方法:use epoll
并发链接数:worker_connections 4096 X 2 (cpu数)
用户为 nginx 线程数为2 绑定任务到 cpu的两个核
6、设置用户的最大进程数,文件数
vim /etc/security/limits.conf
最大进程数为100
shell炸弹::(){ :|:& }; : (无限调用函数一直到系统资源枯竭 然后会卡住,所以要限制普通用户的最大进程数)
7、nginx 开启443端口
网页测试:
修改配置文件: /usr/local/lnmp/nginx/conf/nginx.conf
nginx -t (检测语法错误)
nginx -s reload (重载nginx)
在网页测试: server1.example.com/status 刷新
修改配置文件: /usr/local/lnmp/nginx/conf/nginx.conf server{} 就是个虚拟主机
在/etc/pki/tls/certs/ 下 输入指令make cert.pem(你想生成的ca证书)
输入证书的相关信息。将证书移动到 /usr/local/lnmp/nginx/conf/ 下
Nginx -t nginx -s reload
访问https://server1.example.com 可以查看到。
网页重写:
1.修改发布首页的方法
查看百度的源代码页 然后把代码写入发布首页 /usr/local/lnmp/nginx/html/index.html
2.网页重定向的方法
在80端口下的虚拟主机中加入
nginx -s reload 访问 server1.example.com 可以跳转。
8、虚拟主机
在/usr/local/lnmp/nginx/conf/nginx.conf
中添加两个虚拟主机
Location / 代表发布目录的根
Root 发布页面的根目录
Index 发布页面的名字
9、nginx负载均衡
准备工作 server2,server3作为后端服务器 维护www.wesots.org 这个域名
修改两个后端服务器的默认发布页面 以示区分
修改server1 的nginx主配置文件
/usr/local/lnmp/nginx/conf/nginx.conf
17-23行 配置一个负载均衡组 这个组内定义两个后端服务器
Weight=2 代表权重为2,也就是说 访问两次再访问另一个服务器
Backup 备份服务器。 主辅服务器。这样只访问主服务器。当服务器挂掉 访问辅服务器
最好的设置方法为
Nginx 的主机 默认发布页面 修改为 网站正在维护 请稍后再试
原因:如果两台都挂了,访问量将会全都负载到nginx主机上,不久nginx主机也会挂掉,所以提示 正在维护,减少访问量。
测试脚本:
for i in $(seq 10);do curl www.westos.org;done
循环10次。
负载均衡的多种算法
round-robin (轮回算法)
最小连接数 (谁被连的少 就分配给谁)
根据ip确定服务器(ip对应服务器)
Down掉一台主机 即使主机没有挂掉
根据url对应服务器