Nginx 中间件
1、 简介
Nginx是一个http服务器,中间件。
相对于Apache的优点:
1)、高并发响应性能非常好,比较与Tomcat的500,Nginx可以达到50000;
2)、反向代理性能非常强;(可用于负载均衡)
3)、内存和cpu占用率低;(是Apache的10%~20%)
4)、对后端服务有健康检查功能;
5)、配置代码简介且容易上手。
2、基本环境搭建
1)、打开我们的Linux虚拟机,基本的配置安装上。xshell连接上。(这里只针对nginx常见的开发场景的使用,需要排除其他影响的因素)
2)、测试网络是否连通 ping www.baidu.com (可以使用 Ctrl+z 退出)
3)、禁用防火墙
iptables -F:关闭
iptables -L:查看
4)、关闭安全系统
1、临时关闭(不用重启服务器) setenforce 0
2、修改配置文件(需要重启服务器)
- 修改/etc/selinux/config 文件
- 将SELINUX=enforcing改为SELINUX=disabled
- 重启机器即可
4)、安装一定的支持与工具
yum -y install gcc gcc-c++ autoconf pcre pcre-devel make automake //c语言库的编译工具
yum -y install wget httpd-tools vim //wget:网络下载工具
3、nginx下载安装
先创建一个nginx的文件夹
[root@localhost ~]# cd /usr/local [root@localhost local]# mikdr nginx [root@localhost local]# cd nginx
- 下载安装包和nginx相关依赖包(命令)
下载nginx :wget http://nginx.org/download/nginx-1.8.0.tar.gz
下载openssl : wget http://www.openssl.org/source/openssl-fips-2.0.9.tar.gz
下载zlib : wget http://zlib.net/zlib-1.2.11.tar.gz
下载pcre : wget https://blog.csdn.net/m0_38048304/article/details/ftp:/ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.38.tar.gz - 编译安装(一步一步操作)
tar zxvf openssl-fips-2.0.9.tar.gz cd openssl-fips-2.0.9 ./config && make && make install cd .. tar zxvf pcre-8.38.tar.gz cd pcre-8.38 ./configure && make && make install cd .. tar zxvf zlib-1.2.11.tar.gz cd zlib-1.2.11 ./configure && make && make install cd .. #最后安装nginx tar zxvf nginx-1.8.0.tar.gz cd nginx-1.8.0 ./configure && make && make install
- 启动nginx
cd /usr/local/nginx/sbin/ ./nginx ps -ef | grep nginx
4、nginx入门 实现反向代理
- nginx常用命令
在sbin 目录下 通过 启动命令
nginx -s stop # 快速关闭Nginx,可能不保存相关信息,并迅速终止web服务。
nginx -s quit #平稳关闭Nginx,保存相关信息,有安排的结束web服务。
nginx -s reload #因改变了Nginx相关配置,需要重新加载配置而重载。
nginx -s reopen #重新打开日志文件。
nginx -c filename #为 Nginx 指定一个配置文件,来代替缺省的。
nginx -t #不运行,而仅仅测试配置文件。nginx 将检查配置文件的语法的正确性,并尝试打开配置文件中所引用到的文件。
nginx -v #显示 nginx 的版本。
nginx -V #显示 nginx 的版本,编译器版本和配置参数。 - Linux安装jdk与Tomcat
创建目录 在usr/local/下 mkdir jdk;mkdir tomcat;
安装jdk:
rz文件:jdk-9.0.1_linux-x64_bin.tar.gz
解压:tar –zxvf jdk-9.0.1_linux-x64_bin.tar.gz
配置环境变量:进入vim /etc/profile
添加:
JAVA_HOME=/usr/local/jdk/jdk-9.0.1 CLASSPATH=$JAVA_HOME/lib/ PATH=$PATH:$JAVA_HOME/bin export PATH JAVA_HOME CLASSPATH
保存并退出
重新加载文件:source /etc/profile
安装Tomcat:
rz文件:apache-tomcat-9.0.4.tar.gz
解压:tar -zxvf apache-tomcat-9.0.4.tar.gz
改名:
启动:进入bin目录 执行 ./startup.sh
浏览器访问,测试是否成功。
- 配置单台Tomcat服务器反向代理
1、进入nginx的配置文件目录:/usr/local/nginx/conf
2、vim nginx.conf 添加修改文件:
#设置代理的服务器列表 upstream hellonginx{ server 127.0.0.1:8080; } server { listen 80; server_name localhost; server_name nginx.test.com; charset utf-8; #charset koi8-r; #access_log logs/host.access.log main; #反向代理路径 location / { root html; index index.html index.htm; proxy_pass http://hellonginx; }
3、重启nginx:在sbin下:./nginx -s reload
4、配置window的虚拟路径
在window/System32/drivers/etc/ 里面有个hosts添加:
192.168.1.121(虚拟机的IP) nginx.test.com
5、访问虚拟路径
流程是:
nginx.test.com 通过本机虚拟域名,映射到
192.168.1.121 访问某个ip地址默认就是80端口 所以进入了nginx
nginx监听到域名nginx.test.com 进入location的proxy_pass hellonginx
然后upstream代理的tomcat服务器名字也是hellonginx, 所以就被分发到了
Tomcat 127.0.0.1:8080
- 配置多台Tomcat实现负载均衡
1、复制Tomcat1改名为Tomcat2:cp -r tomcat1 tomcat2
2、修改三个端口号
进入Tomcat2配置文件conf中修改server.xml
3、启动两个Tomcat
4、为了区分我们把Tomcat2 的猫去掉
/usr/local/tomcat2/webapps/ROOT
rm -rf tomcat.png
5、重启Tomcat
6、因为谷歌浏览器有缓存,可以用另一浏览器访问虚拟路径,可以看到猫时有时无。。
nginx负载均衡策略
- weight(权重)
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况
如下所示,10.0.0.88的访问比率要比10.0.0.77的访问比率高一倍。
upstream linuxidc{
server 10.0.0.77 weight=5;
server 10.0.0.88 weight=10;
} - ip_hash(访问ip)
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。 upstream favresin{
ip_hash;
serv 4000 er 10.0.0.10:8080;
server 10.0.0.11:8080; } - fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。与weight分配策略类似。
upstream favresin{
server 10.0.0.10:8080;
server 10.0.0.11:8080;
fair;
} - url_hash(第三方)
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
注意:在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法。
upstream resinserver{
server 10.0.0.10:7777;
server 10.0.0.11:8888;
hash $request_uri;
hash_method crc32;
}
- 基于nginx的中间件架构(2)nginx的介绍与安装
- 基于nginx的中间件架构(3)目录结构介绍
- Nginx的中间件架构
- Nginx入门到实践-Nginx 中间件
- 基于nginx的中间件架构(1)环境准备
- Camel:软负载管理中间件 通过界面及接口管理Nginx集群
- web集群部署(实例大于等于2个),nginx作为中间件时候,后端websocket有时候消息无法传递给客户端
- 监控---------常用中间件(tomcat,JBOSS,nginx)
- nginx中间件
- 常用中间件:MQ、Redis、Nginx
- Nginx入门到实践-Nginx 中间件
- Nginx学习--之基于Nginx的中间件架构
- 浅谈中间件安全———Nginx
- MySQL5.7之多源复制&Nginx中间件(上)【转】
- MySQL5.7之多源复制&Nginx中间件(下)【转】
- Camel:软负载管理中间件 通过界面及接口管理Nginx集群
- 基于nginx的中间件架构(3)安装目录介绍
- Nginx + CGI/FastCGI + C/Cpp
- Nginx实现文件下载的限速功能
- Windows下Nginx的启动、停止等命令