1 从官网下载nginx官网
2 解压到本地文件夹(注意路径不能有中文)
3 配置环境变量 不会请百度
4 配置nginx-1.20.2\conf文件夹下nginx.conf文件
#user nobody;
# 全局块
# 值越大,可以支持并发的处理量越多
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
# 全局块结束
# events块 worker_connections最大连接数
events {
worker_connections 1024;
}
# events块结束
http {
# http全局块
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
# http全局块结束
# server块
server {
listen 80; # 监听端口
server_name localhost; # 表示监听到之后需要转到哪里去,这时我们直接转到本地
#charset koi8-r;
#access_log logs/host.access.log main;
location / { # 表示匹配的路径,这时配置了/表示所有请求都被匹配到这里
root webapp\SUNVA; # 里面配置了root这时表示当匹配这个请求的路径时,将会在这个文件夹内寻找相应的文件
index html\index.html html\index.htm; # 当没有指定主页时,默认会选择这个指定的文件,它可以有多个,并按顺序来加载,如果第一个不存在,则找第二个,依此类推
}
#error_page 404 /404.html; # 代表错误的页面
}
nginx -v 查看版本
nginx -t 检测配置文件是否正确
nginx -s stop 停止nginx运行
nginx -s reload 重启nginx
运行后出现欢迎页面
在这里插一句,alise和root是有区别的alise是绝对路径不会和location中的url相结合。root则是结合
( location = ) > ( location 完整路径 ) > ( location ^~ 路径 ) > ( location ,* 正则顺序 ) > ( location 部分起始路径 ) > ( / )
正向代理
需要再客户端去配置代理服务器进行指定网址访问
反向代理
暴露代理服务器地址,隐藏真实服务器IP
第一步在C:\Windows\System32\drivers\etc\host文件进行域名和ip关系进行对应
第二步在nginx进行请求转发配置
server {
listen 80; # 监听端口
server_name xxx.xxx.xxx.xx; # 表示监听到之后需要转到哪里去,这时我们直接转到本地
#charset koi8-r;
#access_log logs/host.access.log main;
location / { # 表示匹配的路径,这时配置了/表示所有请求都被匹配到这里
root webapp\SUNVA; # 里面配置了root这时表示当匹配这个请求的路径时,将会在这个文件夹内寻找相应的文件
proxy_pass http://xxx.xxx.xxx.xx:8081; # 表示代理路径,相当于转发
index html\index.html html\index.htm; # 当没有指定主页时,默认会选择这个指定的文件,它可以有多个,并按顺序来加载,如果第一个不存在,则找第二个,依此类推
}
}
修改完成后就可以在浏览器中输入对应的域名,跳转到tomcat页面中。
补充一点location的说明
1、= :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配 成功,就停止继续向下搜索并立即处理该请求。
2、~:用于表示 uri 包含正则表达式,并且区分大小写。
3、~*:用于表示 uri 包含正则表达式,并且不区分大小写。
4、^~:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字 符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location 块中的正则 uri 和请求字符串做匹配。
负载均衡
增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的 情况改为将请求分发到多个服务器上,将负载分发到不同的服务器,也就是我们所说的负 载均衡
客户端发送多个请求到服务器,服务器处理请求,有一些可能要与数据库进行交互,服 务器处理完毕后,再将结果返回给客户端。
这种架构模式对于早期的系统相对单一,并发请求相对较少的情况下是比较适合的,成 本也低。但是随着信息数量的不断增长,访问量和数据量的飞速增长,以及系统业务的复杂 度增加,这种架构会造成服务器相应客户端的请求日益缓慢,并发量特别大的时候,还容易 造成服务器直接崩溃。很明显这是由于服务器性能的瓶颈造成的问题,那么如何解决这种情 况呢?
我们首先想到的可能是升级服务器的配置,比如提高 CPU 执行频率,加大内存等提高机 器的物理性能来解决此问题,但是我们知道摩尔定律的日益失效,硬件的性能提升已经不能 满足日益提升的需求了。最明显的一个例子,天猫双十一当天,某个热销商品的瞬时访问量 是极其庞大的,那么类似上面的系统架构,将机器都增加到现有的顶级物理配置,都是不能 够满足需求的。那么怎么办呢?上面的分析我们去掉了增加服务器物理配置来解决问题的办法,也就是说纵向解决问题 的办法行不通了,那么横向增加服务器的数量呢?这时候集群的概念产生了,单个服务器解 决不了,我们增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器,也就是我们 所说的负载均衡。操作如下
1
upstream VA { # upstream中的server元素必须要注意,不能加http://,但proxy_pass中必须加。
server 127.0.0.1:8081;
# server 127.0.0.1:8082;
}
2
server {
listen 80;
server_name 208.208.128.122;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
proxy_pass http://VA;
#proxy_pass http://127.0.0.1:8081;
index index.html index.htm;
}
nginx分配服务器的策略
- 轮询(默认)无需配置
- weight
upstream myserver {
server 208.208.128.122:8081 weight=10; # 在这儿
server 208.208.128.122:8082 weight=10;
}
server {
listen 80;
server_name 208.208.128.122;
location / {
root html;
proxy_pass http://myserver;
index index.html index.htm;
}
- ip_hash
upstream myserver {
ip_hash; // 在这儿
server 208.208.128.122:8081 ;
server 208.208.128.122:8082 ;
}
server {
listen 80;
server_name 208.208.128.122;
location / {
root html;
proxy_pass http://myserver;
index index.html index.htm;
}
- fair(第三方)
upstream myserver {
server 208.208.128.122:8081 ;
server 208.208.128.122:8082 ;
fair; # 在这儿
}
server {
listen 80;
server_name 208.208.128.122;
location / {
root html;
proxy_pass http://myserver;
index index.html index.htm;
}
动静分离
为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速 度。降低原来单个服务器的压力。
7万+

被折叠的 条评论
为什么被折叠?



