nginx是一个高性能的Http和反向代理服务器,特点是占有的内存少,并发能力强
能经受高负载的考验,有报告显示支持高达50000个并发量
反向代理
正向代理:在客户端配置代理服务器,通过代理服务器访问网址反向代理:我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器的地址,隐藏了真实服务器的IP地址
负载均衡
单个服务器解决不了,我们增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为分发到多个服务器上,将负载分发到不同服务器上就是负载均衡
动静分离
为了加快网站的解析速度,可以把动态页面和静态页面由不同服务器来解析,加快解析速度,降低原来单个服务器的压力 nginx安装,常用命令配置文件
安装前需要安装的依赖
pcre-8.37.tar.gz(与安装neginx一样)
wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/tar.gztar -xvf pcre.tar.gz(解压)./config(启动)make && make install (编译并安装命令)pcre-config --version(查看版本) openssl-1.0.1t.tar.gz
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel zlib-1.2.8.tar.gznginx-1.11.1.tar.gz 安装成功之后会在usr中多出来一个文件夹local/nginx,在nginx有sbin有启动脚本查看开放的端口
firewall-cmd --list-all 设置开放端口
firewall-cmd --add-service=http -permanentsudo firewall-cmd --add-port=80/tcp --permanent 重启防火墙
firewall-cmd --reload nginx常用命令
前提是进入到/usr/local/nginx/sbin目录中 查看nginx版本号 ./nginx -v 启动nginx ./nginx 关闭nginx ./nginx -s stop 重加载 ./nginx -s reloadnginx配置文件组成
全局块
从配置文件开始到events块之间的内容,主要会设置一些影响nginx服务器整体运行的配置指令worker_processes 1; 值越大处理的并发量越多,但是也会收到硬件的影响 events块
主要影响nginx服务器与用户的网络连接比如worker_connections 1024; 支持的最大连接数 http块
nginx服务器配置中最频繁的一部分http块又包括http全局块和server块
http全局块server块(又包括server全局块和location块,一个server块可以配置多个location块)location块指令说明,[ = | ~ | ~* | ^~] uri =:用于不含正则表达式的uri前,要求请求字符串与uri严格匹配,如果匹配成功,就停止继续向下搜索并立即处理请求~:用于表示uri包含正则表达式,并区分大小写~*:用于表示uri包含正则表达式,并且不区分大小写 ^~:用于不含正则表达式的uri前,要求Nginx服务器找到标识uri和请求字符串匹配度最高的location后,立即使用此location处理请求,而不在使用location块中的正则uri和请求字符串做匹配 nginx配置示例1-反向代理
实现效果
- 打开浏览器,在浏览器地址输入栏输入地址www.123.com,跳转到linux系统tomcat主页面中
准备工作
在linux系统中安装tomcat,使用默认端口8080
使用命令对外开放访问端口
firewall-cmd --add port=8080/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-all
安装完成直接启动tomcat,并测试tomcat是否能访问
配置windows浏览器本地的host文件默认路径是c盘的windows/system32/drivers/etc/hosts
在文件最后加入你linux的的IP 域名(例:192.168.12.129 www.123.com)
在nginx配置文件中配置
- 在service块中配置好你要监听的端口号,和 server_name ip在location块中配置要跳转的路径:写法是:proxy_pass http://127/0.0.1:8080
启动nginx进行测试
- 实现效果
- 使用nginx反向代理,根据访问的路径跳转到不同的端口服务中,nginx江亭端口为9001访问http//127.0.0.1/edu/直接跳转到127.0.0.1:8080访问http//127.0.0.1/vod/直接跳转到127.0.0.1:8081
- 准备两个tomcat服务器,一个端口是8080,一个是8081创建文件夹或测试的页面
3.
4.开放对外访问的端口号
- 实现效果
- 再浏览器中访问http://192.168.17.129/edu/a.html,负载均衡效果,平均到8080和8081端口中
准备两台tomcat服务器一个8080另一个8081
在两台tomcat中webapps目录中,创建名称是edu的文件夹,再创建一个a.html
nginx分配策略(再upstream myserver中使用)
- 轮询(默认)weight(权重)ip_hash,根据hash值访问,每个用户访问某一台服务器,解决session共享问题fair(第三方),按照后端响应时间分配
持续更新中…
nginx配置高可用集群持续更新中…
nginx原理持续更新中…



