Nginx
简介
1.什么是Nginx
Nginx是一个高性能的HTTP和反向代理web服务器,及电子邮件(IMAP/POP3)代理服务器。特点是占有内存少,并发能力强,效率非常高。
2.为什么要用Nginx
在传统的Web项目中,并发量小,用户量少,所以tomcet服务器就可以承受的住。但在大型项目中,大多数都是高并发,请求量非常大,普通的tomcat的默认最大请求数为150,当然也可以上调,但每次开辟一个线程,就会消耗1MB的JVM内存。所以当请求量大于250时,建议使用集群。在分布式系统同
3.Nginx可以干什么
反向代理
反向代理是指我们发送一个请求到反向服务器,服务器为自动选择去哪个目标服务器处理请求,返回结果。此视反向代理服务器对外就是一个服务器,对客服端而言是无感知的,只暴露了反向代理ip,未暴露真实ip
负载均衡
之前一个服务器处理的请求,使用Nginx分发到多个服务器。将原先一个服务器处理多个请求改为多个服务器处理,将负载分到多个服务器。
动静分离
将项目的静态资源和动态资源,分开部署到不同的服务器,减少处理请求服务器的压力。
安装
1.在官网下载,添加在/usr/local/software/
nginx-1.22.1.tar.gz,
pcre2-10.37.tar.gz
2.解压
先解压pcre2-10.37.tar.gz依赖,进入文件,./configure,安装,检查
tar -zxvf pcre2-10.37.tar.gz
cd pcre2-10.37.tar
./configure
make&&make install
pcre-config --version
再下载其他依赖
yum -y install make zlib zlib-devel gcc-c++ libtoolopenssl openssl-devel
再解压nginx-1.22.1.tar.gz,
tar -zxvf nginx-1.22.1.tar.gz
cd nginx-1.22.1.tar
./configure
make&&make install
cd /usr/local/nginx/sbin
./nginx
开放端口
firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --reload
问题:
./nginx: error while loading shared libraries:
libpcre2-8.so.0
: cannot open shared object file: No such file or directory
解决:
ln -s /usr/local/lib/ 缺少名 /lib64
常用命令
注:使用目录要进入/usr/local/nginx/sbin/
查看版本
[root@iZ0jl4wnyr259ua8fxhqwwZ sbin]# ./nginx -v
关闭nginx
[root@iZ0jl4wnyr259ua8fxhqwwZ sbin]# ./nginx -s stop
[root@iZ0jl4wnyr259ua8fxhqwwZ sbin]# ps -ef |grep nginx
重新加载nginx:重新加载nginx.conf
[root@iZ0jl4wnyr259ua8fxhqwwZ sbin]# ./nginx -s reload\
解读配置文件三部分
配置实例
基本配置
在vi /usr/local/nginx/conf/nginx.conf 中添加
server {
#监听端口
listen 80;
#请求的服务器地址
server_name 8.130.114.137;
#代理跳转地址
location / {
root html;
#代理跳转地址
proxy_pass http://127.0.0.1:8080;
index index.html index.htm;
}
配置异路径异跳转
server {
#监听端口
listen 90;
#请求的服务器地址
server_name 8.130.114.137;
#代理跳转地址
location ~ /education/ {
#代理跳转地址
proxy_pass http://127.0.0.1:8080;
}
location ~ /hm-dianping/{
proxy_pass http://127.0.0.1:8081
}
配置负载均衡
首先在http块中添加upstream{}配置
upstream myServer {
server 127.0.0.1:8088;
server 127.0.0.1:8089;
}
再在server块中添加配置
server {
listen 8848;
server_name 8.130.114.137;
location / {
proxy_pass http://myServer
root html;
index index.html index.htm;
}
}
集群部署分配策略
轮询:
每个服务器轮流处理一次
weight:
根据权重分配,权重越高,分配的数量越多
ip_hash
每个ip固定访问特定客户端,可以解决session问题。