Nginx是一个高性能的HTTP和反向代理服务,是由俄罗斯工程师开发的,第一个公开版发布于2004年10月4日。在处理连续高并发的情况下效果极好,能同时处理5万个并发量。

Nginx有以下几个作用:HTTP协议代理、搭建虚拟主机、服务的反向代理、在反向代理中配置集群的负载均衡。

正向代理:




windows server nginx 透明代理_nginx停止


反向代理:


windows server nginx 透明代理_nginx 停止_02


正向代理和反向代理的区别:


windows server nginx 透明代理_nginx代理telnet端口_03


安装Nginx:

1、将安装包上传至Linux

2、安装环境:

a、gcc,Nginx是用c语言开发的,需要先编译,编译依赖gcc环境,安装gcc:yum install gcc-c++。

b、pcre,它是一个Perl库,包括正则表达式库,Nginx的http模块使用pcre来解析正则表达式:yum install -y pcre pcre-devel(pcre-devel是使用pcre开发的一个二次开发库,Nginx也需要该库)

c、zlib,zlib库提供了很多压缩和解压缩的方式,Nginx使用zlib对http包的内容进行gzip:yum install -y zlib zlib-devel。

d、openssl,openssl是一个强大的安全套接字层密码库,包括主要的密码算法,常用的秘钥和证书封装管理功能以及SSL协议,Nginx不仅支持http协议,也支持HTTPS协议(在ssl协议上传输http):yum install -y openssl openssl-devel。

3、编译安装:解压,tar -zxvf nginx-1.8.0.tar.gz,解压后进入根目录cd nginx-1.8.0配置安装参数:


windows server nginx 透明代理_nginx https透明代理_04


配置完之后编译安装:make --->make install

安装完成后操作Nginx:

启动:cd /usr/local/nginx/sbin ------> ./nginx

停止:快速停止: cd /usr/local/nginx/sbin -------> ./nginx -s stop 该方式相当于先查出Nginx进程id再使用kill命令强制杀掉进程。 完整停止(建议使用):cd /usr/local/nginx/sbin ------> ./nginx -s quit 该方式等待Nginx进程处理任务完毕后进行停止。

重启:先停止再开启(建议使用):./nginx -s quit -----> ./nginx 重新加载:./nginx -s reload

测试:Nginx默认监听80端口,启动之后访问:


windows server nginx 透明代理_nginx https透明代理_05


配置虚拟主机:


windows server nginx 透明代理_nginx https透明代理_06


三种方式:基于ip,基于端口,基于域名。

基于ip配置:复制Nginx目录的html文件夹并命名为虚拟ip。


windows server nginx 透明代理_nginx停止_07


绑定多个ip:复制网络配置文件,并修改其中的device为ens33-1,ipaddr修改为192.168.50.101(视自己情况而定),保存退出,重启虚拟机,测试连接。


windows server nginx 透明代理_nginx停止_08


修改Nginx的配置文件nginx.conf:


windows server nginx 透明代理_nginx 停止_09


vim /usr/local/nginx/conf/nginx.conf:开放这两个,并修改pid为如下图所示内容,并按照目录新建logs文件夹。


windows server nginx 透明代理_nginx 停止_10


配置server,一个server就是一个虚拟主机:为了便于区分,在复制新建html101的时候将里面的index.jsp内容稍作修改以提高辨识,配置文件修改后保存退出并关闭nginx然后重新开启。


windows server nginx 透明代理_nginx停止_11


在浏览器输入192.168.50.101:


windows server nginx 透明代理_nginx停止_12


基于端口的虚拟主机配置方式和ip类似,server_name 项不做修改,将listen 端口号修改即可,步骤同上。

基于域名的虚拟主机配置方式:在配置之前先将该文件修改


windows server nginx 透明代理_nginx 停止_13


在末尾加上要配置的域名:


windows server nginx 透明代理_nginx 停止_14


复制html文件夹,修改index.jsp内容提高辨识度。


windows server nginx 透明代理_nginx https透明代理_15


配置文件中修改:保存退出,关闭nginx,开启nginx


windows server nginx 透明代理_nginx 重启_16


访问域名http://test.tangfen.com:


windows server nginx 透明代理_nginx停止_17


反向代理: 开启另外一台虚拟机ip地址为192.168.50.2,安装配置好两个tomcat,修改端口号,修改默认首页内容。

在nginx中加入的配置:


windows server nginx 透明代理_nginx代理telnet端口_18


windows server nginx 透明代理_nginx https透明代理_19


保存退出,重启访问:


windows server nginx 透明代理_nginx https透明代理_20


在反向代理中配置负载均衡:

负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。


windows server nginx 透明代理_nginx 停止_21


负载均衡的策略:

轮询(默认):每个请求按照时间顺序逐一分配到不同的后端服务器,如果后端服务器当掉,自动剔除。

指定权重:指定轮询几率,weight和访问比率成正比,用户后端服务器性能不均的情况。

ip绑定ip_hash:每个请求按照访问的ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

nginx作为负载均衡的服务器,用户请求先到达nginx,再由nginx根据负载配置将请求转发至tomcat服务器。

nginx服务器:192.168.50.1

tomcat1:192.168.50.2:8081

tomcat2:192.168.50.2:8082

在nginx配置文件中配置集群:


windows server nginx 透明代理_nginx代理telnet端口_22


windows server nginx 透明代理_nginx 停止_23


配置完成后保存退出,重启nginx服务,访问:


windows server nginx 透明代理_nginx https透明代理_24


轮询:


windows server nginx 透明代理_nginx代理telnet端口_25


http协议代理:用来做上传图片时候图片回显:vsftpd和nginx安装到同一个虚拟机中。

修改系统的hosts文件:


windows server nginx 透明代理_nginx停止_26


修改nginx配置文件:


windows server nginx 透明代理_nginx 重启_27


代码中配置文件修改:


windows server nginx 透明代理_nginx 重启_28


测试:


windows server nginx 透明代理_nginx 重启_29


将该路径单独拿出来可以直接访问:


windows server nginx 透明代理_nginx 停止_30


windows server nginx 透明代理_nginx 停止_31


明天学Redis,先把今天学的记录下来。