Nginx学习总结

1. 静态资源服务器
使用nginx实现静态资源服务器,我们可以通过nginx来访问静态资源。修改nginx配置(/nginx/conf/nginx.conf):

server {
    listen 16816;
    server_name test;
    location / {
        root /home/demo/test;
        index index.html;
    }
}

通过访问ng的地址+16816端口http://{ngHost}:16816 即可以访问index.html页面。

listen:表示监听端口号
server_name:表示浏览器上输入的域名
location:表示url匹配,/表示全部匹配
root:表示匹配成功之后进入的目录
index:表示默认访问的页面

2. 正向代理
正向代理,“它代理的是客户端,代客户端发出请求”,是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。
举一个例子:你需要钱,C正好有钱,但是C不直接借给你。你和B关系比较好,B可以找C借到钱。你和B沟通后,由B来找C借到钱后在给你。
在这里插入图片描述
3. 反向代理
客户端是无感知代理的存在的,反向代理对外都是透明的,访问者并不知道自己访问的是一个代理。因为客户端不需要任何配置就可以访问。
比如,我们同样需要钱,但是我们又不知道谁有钱,所以我们找了一家网贷平台,你提交资料后,网贷平台直接将钱打给你。但是你不知道,也不用关注网贷平台的钱从哪里来。网贷平台内部他们可能从哪一个财主哪里融的钱。对你而言网贷平台和他们的金主是一起的。
在这里插入图片描述
举例:我现在要访问:https://10.26.30.180:443/auth/v1/api/requesttoken
在这里插入图片描述
Nginx的ip地址为{ngHost},添加配置如下:

server {
        listen       19005;
        server_name  testServer;
        client_max_body_size 22M;
        location  /apigee/test/ {
            proxy_pass https://10.26.30.180:443/;
        }
        location  /api/interface/marketing {
            proxy_pass http://mkt_server2;
            proxy_set_header Host $host:$server_port;
        }
}

根据上述配置,可以直接访问:
http://{ngHost}/apigee/test/auth/v1/api/requesttoken
在这里插入图片描述
注1: nginx配置proxy_pass URL末尾加与不加/(斜线)的区别
假设访问路径为:apigee/test/auth/v1/api/requesttoken
① 加/斜线的情况

location  /apigee/test/ {
proxy_pass https://10.26.30.180:443/;
}

则被代理的真实访问路径为:https://10.26.30.180:443/auth/v1/api/requesttoken

② 不加/斜线的情况

location  /apigee/test/ {
proxy_pass https://10.26.30.180:443;
}

则被代理的真实访问路径为:https://10.26.30.180:443/apigee/test/auth/v1/api/requesttoken
(更多请参考:https://www.cnblogs.com/kevingrace/p/6566119.html

注2:location匹配模式及顺序

表示描述
location = /uri=开头表示精确匹配,只有完全匹配上才能生效。
location ^~ /uri^~ 开头对URL路径进行前缀匹配,并且在正则之前。
location ~~开头表示区分大小写的正则匹配。
location ~*~*开头表示不区分大小写的正则匹配。
location /uri不带任何修饰符,也表示前缀匹配,但是在正则匹配之后。
location /通用匹配,拦截所有,但是优先级最低,只有前面都没有被拦截的情况下,才会被拦截到这里。

4. 负载均衡
负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。
在这里插入图片描述
upstram XXX: 表示负载均衡服务器,也是通常再说的上游服务器。
三种基本的负载均衡算法: 轮询、权重、ip绑定。
①轮询:每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。例如:

upstream image_server {
    server 10.21.85.127:18888;
    server 10.21.52.169:18888;
}

②权重:指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。例如:

upstream image_server {
    server 10.21.85.127:18888 weight=2;
    server 10.21.52.169:18888 weight=1;
}

意思就是说每访问2次 10.21.85.127:18888,10.21.52.169:18888

③ip绑定:每个请求按访问ip的hash结果(底层自己根据来访者的不同,得到不同的hash结果从而决定固定哪个ip)分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

upstream image_server {
    ip_hash;
    server 10.21.85.127:18888;
    server 10.21.52.169:18888;
}

5. 常用命令

参数官方解释说明
-hthis help帮助
-vshow version and exit显示版本信息
-Vshow version and configure options then exit显示版本信息和配置信息
-ttest configuration and exit检查配置文件语法
-Ttest configuration, dump it and exit
-qsuppress non-error messages during configuration testing
-ssignalsend signal to a master process: stop, quit, reopen, reload控制服务平滑启停
-p prefixset prefix path (default: /etc/nginx/)
-c filenameset configuration file (default:/etc/nginx/nginx.conf)
-g directivesset global directives out of configuration file

示例:
./nginx –v
在这里插入图片描述
./nginx -V
在这里插入图片描述
./nginx -s
在这里插入图片描述

6. 附录
(1) NGINX 配置本地HTTPS(双向认证):
https://www.cnblogs.com/xiao987334176/p/11041241.html

获取客户端证书序列号: openssl x509 -in client.crt -noout -serial
在这里插入图片描述
客户端证书、私钥转换成p12
openssl pkcs12 -export -in client.crt -inkey client.key -out client.p12

p12转换成jks
keytool -importkeystore -srckeystore client.p12 -srcstoretype PKCS12 -deststoretype JKS -destkeystore client.jks

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值