安装nginx
1.安装nginx的rpm
rpm -ivh /usr/local/nginx/nginx-1.10.3-1.el7.ngx.x86_64.rpm
卸载nginx: rpm -e nginx
2.启动nginx
/usr/sbin/nginx -c /etc/nginx/nginx.conf 或者 service nginx start
3.nginx常用命令
#查看版本号
nginx -v
#关闭nginx
nginx -s stop 或者 systemctl stop nginx
#重新加载nginx
nginx -s reload
#查看状态
systemctl status nginx
#查看配置文件异常
nginx -t -c /etc/nginx/nginx.conf
4.nginx的配置文件
nginx.conf的配置文件分为三部分
1.全局块 nginx整体运行的配置
worker_processes 1; #值越大 可以支持并发处理量越多
2.events块 nginx服务器与用户网络连接
worker_connections 1024; #支持的最大连接数
3.http块
5.反向代理
案例一:实现浏览器输入www.123.com跳转都linux的tomcat页面
#1.设置防火墙开放的端口
firewall-cmd --add-service=http --permanent
firewall-cmd --add-port=80/tcp --permanent
#2.重启防火墙
firewall-cmd --reload
############### 或者 ##########################
#直接关闭防火墙
systemctl stop firewalld
#3.具体实现
第一步 在windows系统的hosts文件进行域名和ip的对应(因为没有域名服务器,只能这样配置)
第二步 在nginx进行请求转发配置(反向代理)
最后 重新启动nginx windows输入www.123.com即可访问到虚拟机上的tomcat首页
案例二:使用反向代理实现根据不同的访问路径跳转到不同的端口服务中
启动两个tomcat
6.负载均衡
在配置文件中修改新增upstream
http{
#upstream myserver{
# server 192.168.112.132:8080 weight=5; 服务器的地址和端口号 指定weight权重,实现请求服务的机会 不写默认轮询
# server 132.168.112.132.8081 weight=10; 服务器的地址和端口号
#}
server{
listen 80;
server_name 192.168.112.132;
location /{
#proxy_pass myserver; 此处指定创建的服务名
}
}
}
6.1负载均衡的分配策略
1.轮询
默认
2.weight
在指定server后面添加 weight=5
upstream myserver{
server 192.168.112.132:8080 weight=5; 服务器的地址和端口号
server 132.168.112.132.8081 weight=5; 服务器的地址和端口号
}
3.ip_hash
使用ip_hash分配这样每个访客固定一个后端服务器,可以解决session问题但可能出现问题,比如一个人跨地区后自己的ip改变了
upstream myserver{
#ip_hash
server 192.168.112.132:8080 ; 服务器的地址和端口号
server 132.168.112.132.8081 ; 服务器的地址和端口号
}
4.fair
根据响应时间,响应时间短的优先相应
upstream myserver{
server 192.168.112.132:8080 ; 服务器的地址和端口号
server 132.168.112.132.8081 ; 服务器的地址和端口号
#fair
}
7.动静分离
nginx的动静分离实现是请求静态资源时不使用tomcat,直接访问linux中的静态文件
#root /data/www //思路:将所有/static的请求重定向到/data/www下 eg:192.168.112.132/static/index.html => 192.138.112.132/data/www/index.html
server{
listen 9999;
server_name localhost;
location / {
include mime.types;
default_type application/octet-stream;
#root //思路:将所有/的请求重定向到/data/html/EPRI-MOBILE下 eg:192.168.112.132=> 192.138.112.132/data/html/EPRI-MOBILE/index.html
root /data/html/EPRI-MOBILE;
index index.html index.htm;
}
location /test/ {
proxy_pass http://localhost:16500/;
}
}
8.proxy_pass(请求代理转发)
如果proxy_pass后面的url带/,表示绝对根路径,没有代表相对路径,把匹配的路径部分也代理走
#对于http://127.0.0.1/proxy/text.html
#第一种
location /proxy/{
proxy_pass http://127.0.0.1/;
}
#代理后的url为http://127.0.0.1/test.html
#--------------------------------------------------------
#第二种(相对于第一种少了/)
location /proxy/{
proxy_pass http://127.0.0.1;
}
#代理后的url为http://127.0.0.1/proxy/test.html
#--------------------------------------------------------
#第三种
location /proxy/{
proxy_pass http://127.0.0.1/aaa/;
}
#代理后的url为http://127.0.0.1/aaa/test.html
#--------------------------------------------------------
#第四种(相对于第三种少了/)
location /proxy/{
proxy_pass http://127.0.0.1/aaa;
}
#代理后的url为http://127.0.0.1/aaatest.html