Nginx详解+身份验证+虚拟主机+反向代理负载均衡

一、差异对比

Apache Nginx
配置相对复杂 配置相对简单
原生支持动态和静态页面 支持静态页面
模块相对安全 高性能模块出产迅速、社区活跃
BUG相对较少,消耗资源较多 BUG相对较多,节省资源
对加密支持较好 对反向代理支持较好
同步阻塞型应用 异步非阻塞型应用

运用的函数:select 运用的函数:epoll

源码包nginx的配置文件位置/usr/local/nginx/conf/nginx.conf

二、配置文件详解

丄指定运行的身份是谁

丄指定同时有几个子进程运行,同时可以处理几个任务,cpu的一个线程,就代表可以同时处理一个任务。

丄日志已经pid(进程号)

丄每个进程可以支持多少连接

mime.types文件中指定哪种格式的文件交给那个模块处理(和apache一样)

丄开启高效文件传输(默认开启有可能导致图片显示不出来)

丄开启高效文件传输(默认开启有可能导致图片显示不出来)

丄定义每个分发路径的区域 端口和域名。

1,定义网页分发根目录所在位置2,定义索引文件

丄定义了报错404时使用的页面的位置

丄定了这些错误码去哪里引用

丄如果网页分发根目录下有.php结尾的文件就交给本地端口9000去处理,处理完请求后交给nginx去返回请求

 

三、单个Nginx 的安装
yum -y install gcc*
yum -y install pcre pcre-devel zlib zlib-devel openssl-devel openssl
useradd -M -s /sbin/nologin nginx
解压软件包 nginx
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module
make
make install

 

useradd -M -s /sbin/nologin nginx
添加监控模块
vi /usr/local/nginx/conf/nginx.conf
location /abc {
stub_status on;
}

 

保存退出,重启服务。

访问前面指定的abc目录

 

1,当前有4个链接,2,第一,请求的次数,第二,响应的次数,第三,返回的请求的次数3,请求中的信息,返回的信息,正在等待的请求。

四、 Nginx实验

1Nginx 身份验证

a、基于用户名密码

vi /usr/local/nginx/conf/nginx.conf
location /abc {#为上面的状态统计做加密
stub_status on;#开启
auth_basic "Welcome to nginx!";#欢迎信息
auth_basic_user_file /usr/local/nginx/html/a.psd;#信息的文件所在位置
}
htpasswd -c /usr/local/nginx/html/a.psd zhangsan#htpasswdapache的命令,所以需要安装apache,通过这个命令生成指定哪个用户可以访问。
htpasswd -m/usr/local/nginx/html/a.psd lisi

修改配置文件

保存退出,创建密码文件htpasswd -c /usr/local/nginx/html/a.psd zhangsan

 

重启nginx -t检查配置文件语法

 

再次访问abc监控文件测试

 

输入zhangsan密码123登陆

b、基于IP限制访问

实验环境nginx服务器64,客户端76
vi /usr/local/nginx/conf/nginx.conf
location /abc {
stub_status on;
auth_basic "Welcome to nginx!";
auth_basic_user_file /usr/local/nginx/html/a.psd;
allow 192.168.116.64;     

deny 192.168.116.0/24;     允许64拒绝116网段,拒绝所有 0.0.0.0

}

更改后如下

;保存退出重启服务。

64访问。

其他人访问。

c、虚拟主机

实验环境:64服务器,73客户端
vi /usr/local/nginx/conf/nginx.conf
复制 server{} 区域,不同的 server区域则是不同的虚拟主机,同 apache 拥有基于域名端口的虚拟
主机

删掉配置文件里server区的模板和注释后复制server

基于端口不同。修改两者的不同,端口和家目录

创建目录,和网页文件

重启服务

访问80端口

访问8080端口

基于域名不同。端口相同修改域名。

在客户端映射文件中写入ip域名对应关系。

分别访问测试

dNginx的反向代理功能
说明:反向代理的实现过程是,当客户端访问请求道 nginx 服务器是,nginx充当客户端去真正的服务端去
数据,返回给client端,这个过程称之为反向代理
实验环境说明:192.168.116.73安装了lamp环境,192.168.116.64安装了 nginx 程序,实现 nginx 完全的反
向代理 lamp

73,启动apache服务,到网页分发目录下创建index.html文件写入test用于测试

64,修改nginx的配置文件

 修改server区的location区删除路径和格式两行,添加proxy_pass   http://192.168.116.7380;

、在 / 的区域内设置反向代理

location / {

proxy_pass   http//dudu.com

}

保存,重启服务

访问,反向代理nginx服务器

e、负载调度的用法

upstream:可以进行一些简单的负载 应用层可以跨平台。

rr轮询机制算法。收到的请求在每个服务器之间切换。

hash,某个ip断开后下次仍然可以访问用一个服务器。

实验环境:64nginx反向代理服务器 ,73,和75,做apache服务器或lamp

、在server区域外创建一个 upstream 区域,此区域中编写的内容为负载群

upstream dudu.com {
ip_hash; #指定算法
#调度算法,默认 rr 轮训,hash常用语解决session共享的问题
server 192.168.116.73:80 weight 1; #指定后端服务器server 192.168.116.75:80 weight 1;
server 192.168.116.xx:80 weight 1 backup;
#backup 表示机器处于热备状态,weight代表权重(可以不写),权重越高代表使用越多
}

退出,重启服务

76客户端访问测试

刷新

使用hash算法

重启服务

测试

刷新不变

 

posted @ 2018-08-02 10:27  Xuwenxing  阅读(1691)  评论(0编辑  收藏  举报