记录nginx的配置与使用

nginx的下载路径:http://nginx.org/en/download.html
启动nginx : start nginx
重启nginx: nginx -s reload
快速停止nginx:nginx -s stop
有序的关闭nginx:nginx -s quit
检查配置文件是否正确,返回success就正确:nginx -t -c /nginx-1.15.2/conf/nginx.conf

nginx.conf 文件详解:
基本配置:
基本配置(全局块配置)

#user  nobody;   #配置用户或者组,默认为nobody
worker_processes  1; #允许生成的进程数,默认为1

#error_log  logs/error.log; #制定日志路径,级别,这个设置可以放入全局块,http块,server块,级别以此为:debug|info|notice|warn|error|crit|alert|emerg
#error_log  logs/error.log  notice; 
#error_log  logs/error.log  info;
#pid        logs/nginx.pid;  #指定nginx进程运行文件存放地址

events块配置:配置影响nginx服务器与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网络连接,开启多个网络连接序列化等
在这里插入图片描述

accept_nutex on; #设置网络连接序列化,防止惊群发生,默认为on
multi_accept on; #设置一个进程是否同时接受多个网络连接,默认为off
#user epoll; #事件驱动模型,select|poll|kqueue|epoll|resig|dev|poll|eventport
worker_connections 1024;  #最大连接数,默认为1024

**http块配置:**可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引用,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。

#配置nginx支持哪些文件扩展名与文件类型映射表。在conf/mime.types查看支持哪些类型
include mime.types
#默认文件类型(流)类型,支持很多文件,图片,js/css等
default_type application/octet-stream
#access_log  logs/access.log  main; #combined为日志格式的默认值
#优化参数 允许sendfile方式传输文件,开启高效传输模式
sendfile        on;
#tcp_nopush on; #防止网络阻塞
keepalive_timeout  65; #长连接超时时间(秒)
#gzip  on; #开启gzip压缩

静态文件配置方法:
在nginx文件夹下新建static 然后里面在建一个文件夹在放进去
然后在nginx.conf这里配置路径

 location / {
            root   E:/ketai/nginx-1.16.1/static/baby_p2p;
            index  index.html index.htm;
        }

方向代理方法:

	location / {
			proxy_pass http://localhost:8080;
        }

动静分离:
动态资源:如jsp由tomcat或其他web服务器处理
静态资源:如图片,css,js等由nginx服务器完成
代码示例:

 location ~ \.jsp$ {
			proxy_pass http://localhost:8080;
           
           # index  index.html index.htm;
        }
		location ~ \.(html|js|css|images|png|gif|jpg)$ {
			 root   E:/ketai/nginx-1.16.1/static/baby_p2p;
		}
~表示正则匹配,后面的内容可以是正则表达式匹配
.点表示任意字符
*表示一个或多个字符
\.是转移字符
|表示或
$表示结尾
整个配置代表括号晨面的后缀请求都由nginx处理

集群:
配置服务器组,在http节点之间添加upstream配置(注意不要写localhost,不然访问速度会很慢)

upstream nginxCluster{
	server 127.0.0.1:8080;
	server 127.0.0.1:8081:
}

然后把

location / {
			proxy_pass http://localhost:8080;
			
		}
#改成
location / {
			proxy_pass http://nginxCluster;
		}

负载均衡:
规则:
1.轮询(默认):
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除
2.指定轮询几率:
weight和访问比率成正比,用于后端服务器性能不均的情况下默认选项,当weight不指定时,各服务器weight相同,(weight=1)
在这里插入图片描述
3.ip_hash
每个请求按访问的ip的hash值分配,这样同一客户端连续的web请求都会被分发到同一服务器进行处理,可以解决session的问题。当后台服务器宕机时,会自动跳转到其他服务器。

集群下session的解决方案:
Session保持
Session复制
Session共享

Session保持:
就是把用户锁到了一台服务器上
优点:非常简单,不需要对session做任何处理
缺点:负载不均衡了,如果这台服务器宕机了数据还是会丢失

Session复制:
就是在每台服务器上都保存一份用户信息,当有一台挂掉时会把session的内容序列化然后广播给他
优点:可容错
缺点:会对网络负荷造成一定的压力
可以用tomcat实现

Session共享:
Redis Cluster 解决session共享问题
spring-session+Redis实现Session共享

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值