应该是Engin X 的缩写
基本介绍
Nginx是一个反向代理软件,大部分的网站都采用Nginx作为网站/平台的服务器软件。Nginx除了可以直接作为web服务器使用外,更多的情况是通过反向代理将请求转发给上游服务器。
用于反向代理,负载均衡,动静分离
反向代理
修改Windows的Hosts设置
路径:C:\Windows\System32\drivers\etc\hosts
设置nginx.conf
显示当前位置:pwd
/usr/local/nginx
在当前位置,修改配置:vim nginx.conf
# another virtual host using mix of IP-, name-, and port-based configuration
#
server {
listen 10000;
# listen somename:8080;
server_name 8.137.**.***;
location ~ /product/ {
proxy_pass http://localhost:8080;
}
location ~ /member/ {
proxy_pass http://localhost:8080; //windows访问不了,再做的一个
}
}
检查nginx.conf的语法是否通过:/usr/local/nginx/sbin/nginx -t
重启nginx:/usr/local/nginx/sbin/nginx -s reload
查看端口监听情况:netstat -anp | more
编辑html页面
创建
../tomcat/webapps/product/hi.html
../tomcat/webapps/member/hello.html
防火墙端口开放
显示防火墙设置:firewall-cmd --list-all
添加开放端口:firewall-cmd --permanent --add-port=10000/tcp
重启防火墙:firewall-cmd --reload
阿里云
如果使用的阿里云,还要开放云端的端口才能连接。
安全组-配置规则-访问规则-入方向-手动添加-目的:10000-源:0.0.0.0-保存
负载均衡
配置hosts(非必须)
修改nginx.conf
upstream steinservers{
server localhost:8080; //填写反向代理的ip:port
server 192.168.122.1:8081; //填写反向代理的ip:port
}
location / {
root html;
proxy_pass http://steinservers;
index index.html index.htm;
}
注意:proxy_pass 后面接的地址,需要"http://",否则会报错。
steinservers是自定义的名字,在proxy_pass那儿进行引用
检查语法:/usr/local/nginx/sbin/nginx -t
创建另一个tomcat
复制tomcat
cp -rf 源文件 目的文件
配置端口,一个接收的端口,另外两个是避免端口冲突
newtomcat/conf/server.xml
修改/usr/local/newtomcat/webapps/look.html
启动第二个tomcat
./bin/shutdown.sh
检查是否启动成功:netstat -anp | more
检查防火墙端口80是否开启:firewall-cmd --list-all
重启nginx:./sbin/nginx -s reload
负载均衡规则
配置上游服务器可以使用upstream进行设置,通过upstream可以实现服务的负载均衡规则,可以提高服务器的高可用性。
负载均衡规则设置:https://zhuanlan.zhihu.com/p/409693332
动静分离
什么是动静分离
1.Nginx动静分离简单来说就是把动态跟静态请求分开,可以理解成使用Nginx处理静态页面/资源,Tomcat处理动态页面/资源。
2.动静分离可以减轻Tomcat压力,静态请求由Nginx处理,提供系统整体性能。
传统方式
即静态文件保存在不同的集群中。从该方式体会到了location定位的文件夹配置好以后,里面的文件就可以直接使用负载均衡了。
使用动静分离
可以通过浏览器的控制台,查看消息头信息,来确定静态文件的存放路径。
通常格式是:http://www.hspcrm.com/search/image/cal.jpg
http://www.hspcrm.com 是IP地址部分
/search/image/cal.jpg 是静态文件需要和传统方式需要统一的地址部分
nginx/html/ 又是nginx静态文件的存放在nginx的地址
配置的location的参数root,对应的地址可以是绝对地址,也可以是"html"这样的相对地址,相对于nginx的安装的路径