Nginx的安装和使用
Nginx概述
Nginx是一款高性能的Http服务器/反向代理服务器,官方测试支持5万并发量,他是免费的,开源的。并且cpu、内存占用非常低,运行非常稳定。
应用场景
1、HTTP服务器,可以做静态网页服务器。 动态网页做到tomcat来部署,Nginx来反向代理。
2、虚拟主机。可以在一台服务器模拟出多个网站,例如虚拟主机。
3、反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。让多台服务器可以平均分担。
安装
1、需要gcc的环境
yum install gcc-c++
2、第三方的包
pcre库
yum install -y pcre pcre-devel
zlib库 gzip压缩
yum install -y zlib zlib-devel
openSSL SSL协议 https
yum install -y openssl openssl-devel
nginx下载地址 http://nginx.org/en/download.html
将下载下来的 nginx-1.18.0.tar.gz 上传到linux服务器 /usr/local/nginx 中
cd /usr/local/nginx
tar -xvf nginx-1.18.0.tar.gz
解压后 进入Nginx-1.18.0文件夹 使用configure命令创建makefile文件
./configure \ --prefix=/usr/local/nginx \ --pid-path=/var/run/nginx/nginx.pid \ --lock-path=/var/lock/nginx.lock \ --error-log-path=/var/log/nginx/error.log \ --http-log-path=/var/log/nginx/access.log \ --with-http_gzip_static_module \ --http-client-body-temp-path=/var/temp/nginx/client \ --http-proxy-temp-path=/var/temp/nginx/proxy \ --http-fastcgi-temp-path=/var/temp/nginx/fastcgi \ --http-uwsgi-temp-path=/var/temp/nginx/uwsgi \ --http-scgi-temp-path=/var/temp/nginx/scgi
执行后 会生成makefile文件
编译
make
安装
make install
nginx 启动与访问
创建临时目录
mkdir /var/temp/nginx/client -p
进入nginx 目录
cd /usr/local/nginx/sbin
./ngnix 启动
查看nginx启动是否成功
ps -ef | grep 'nginx'
./ngnix -s stop 关闭
./ngnix -s quit 重启
./ngnix -s reload 刷新配置
检查是否开启80端口
firewall-cmd --list-ports
添加端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
刷新防火墙
firewall-cmd --reload
输入虚拟机ip 则可以看见 欢迎访问nginx 页面
部署静态网页
/usr/local/nginx 共有三个文件夹 conf html sbin
sbin是执行文件 启动或关闭 nginx
conf是配置文件目录
html是资源文件夹
首先进入conf 查看nginx.conf 配置文件
http { server { listen 80; server_name localhost; location / { root html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
listen 80 监听80端口
server_name 域名 如www.xxx.com
root 网站目录
index 默认首页 如 index.html index.htm default.html
所以部署静态资源 只需要修改 root后面的html即可 或者将文件覆盖 html文件夹
这里上传到html下 /index文件夹 所以就是 root html/index
如果有多个网站部署 可以写多个server
反向代理
以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求链接的客户端。
上传springboot 项目 build后的.jar 到/home/website nohup jar -jar xxx.jar 后台启动 使 10.211.55.4:8080 可以打开页面
配置反向代理
http { server { listen 80; server_name www.david.com; location / { proxy_pass http://127.0.0.1:8080; } } }
这样输入 www.david.com 就会走 8080端口的程序,如果有多个可以在加一个server 监听不同的域名 去访问不同的 端口程序
负载均衡
利用负载均衡解决 高并发请求一台服务器崩溃 响应慢等问题
负载均衡的实现方式:
1、轮循 : 默认的方式,按时间顺序依次请求服务器,如果服务器挂掉,会自动剔除。
upstream backserver { server 192.168.0.14; server 192.168.0.15; }
2、权重 : 指定每个服务器的权重比例,如两台服务器配置不一样时,想让性能好的多出力,如:15的服务器是14服务器访问几率的2倍。
upstream backserver { server 192.168.0.14 weight=1; server 192.168.0.15 weight=2; }
3、 iphash 如果用户在14服务器上登录了,在15服务器上是没有登录的,这时不应该让用户去到15服务器,这时可以使用iphash经过一个算法后去他应该去的服务器(ip的hash值,访问过15服务器以后就会记住,以后就访问15服务器)
upstream backserver { ip_hash; server 192.168.0.14 weight=1; server 192.168.0.15 weight=2; }
4、最少连接数 将请求分配到链接最少的服务器上
upstream backserver { least_conn; server 192.168.0.14 weight=1; server 192.168.0.15 weight=2; }
Ngnix 配置:
#user nobody; worker_processes 4; events { # 最大并发数 worker_connections 1024; } http{ # 待选服务器列表 upstream myproject{ # ip_hash指令,将同一用户引入同一服务器。 ip_hash; server 125.219.42.4 fail_timeout=60s; server 172.31.2.183; } server{ # 监听端口 listen 80; # 根目录下 location / { # 选择哪个服务器列表 proxy_pass http://myproject; } } }