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. 常用命令
参数 | 官方解释 | 说明 |
---|---|---|
-h | this help | 帮助 |
-v | show version and exit | 显示版本信息 |
-V | show version and configure options then exit | 显示版本信息和配置信息 |
-t | test configuration and exit | 检查配置文件语法 |
-T | test configuration, dump it and exit | |
-q | suppress non-error messages during configuration testing | |
-s | signalsend signal to a master process: stop, quit, reopen, reload | 控制服务平滑启停 |
-p prefix | set prefix path (default: /etc/nginx/) | |
-c filename | set configuration file (default:/etc/nginx/nginx.conf) | |
-g directives | set 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