当前位置:   article > 正文

【基础篇】nginx代理、动静分离、路径重写、高可用以及https配置_nginx代理路径

nginx代理路径

目录

正向代理

反向代理

负载均衡

负载均衡的策略

动静分离

alias与root 

UrlRewrite(资源路径重写)

防盗链配置  

高可用配置

Https证书配置

安装BBS(开源界的鼻祖)


正向代理

用户知道nginx服务器的存在,与nginx服务器是一伙的。例如:公司内的电脑要通过代理服务器(nginx)连接外网

反向代理

用户不知道nginx的存在,nginx是与服务端一伙的。

有性能瓶颈,因为所有的数据都经过Nginx,所以Nginx服务器的性能至关重要

负载均衡

  1. worker_processes 1;
  2. events {
  3. worker_connections 1024;
  4. }
  5. http {
  6. include mime.types;
  7. default_type application/octet-stream;
  8. sendfile on;
  9. keepalive_timeout 65;
  10. upstream httpsd {
  11. server 192.168.23.101:80;
  12. server 192.168.23.102:80;
  13. }
  14. server {
  15. listen 80;
  16. server_name localhost;
  17. location / {
  18. proxy_pass http://httpsd;
  19. }
  20. error_page 500 502 503 504 /50x.html;
  21. location = /50x.html {
  22. root html;
  23. }
  24. }
  25. }

 

负载均衡的策略

轮询
默认情况下使用轮询方式,逐一转发,这种方式适用于无状态请求。
weight( 权重 )
指定轮询几率, weight 和访问比率成正比,用于后端服务器性能不均的情况
  1. upstream httpd {
  2. server 127.0.0.1:8050 weight=10 down;
  3. server 127.0.0.1:8060 weight=1;
  4. server 127.0.0.1:8060 weight=1 backup;
  5. }
  • down:表示当前的server暂时不参与负载
  • weight:默认为1.weight越大,负载的权重就越大。
  • backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。
ip_hash
根据客户端的 ip 地址转发同一台服务器,可以保持回话。
least_conn
最少连接访问
url_hash
根据用户访问的 url 定向转发请求
fair
根据后端服务器响应时间转发请求

动静分离

现在有一台tomcat,一台nginx反向代理tomcat,对于静态资源类型访问通常是比较频繁的,因此将静态资源直接放在nginx服务器上,可以使访问速度快上许多

增加每一个 location
  1. location /css {
  2. root /usr/local/nginx/static;
  3. index index.html index.htm;
  4. }
  5. location /images {
  6. root /usr/local/nginx/static;
  7. index index.html index.htm;
  8. }
  9. location /js {
  10. root /usr/local/nginx/static;
  11. index index.html index.htm;
  12. }

这里也可以使用正则表达式进行匹配,这样子只需要写一个location

location 前缀
  • / 通用匹配,任何请求都会匹配到。
  • = 精准匹配,不是以指定模式开头
  • ~ 正则匹配,区分大小写
  • ~* 正则匹配,不区分大小写
  • ^~ 非正则匹配,匹配以指定模式开头的location  
  1. location ~*/(css|img|js) {
  2. root /usr/local/nginx/static;
  3. index index.html index.htm;
  4. }

location 匹配顺序
  • 多个正则location直接按书写顺序匹配,成功后就不会继续往后面匹配
  • 普通(非正则)location会一直往下,直到找到匹配度最高的(最大前缀匹配)
  • 当普通location与正则location同时存在,如果正则匹配成功,则不会再执行普通匹配
  • 所有类型location存在时,“=”匹配 > “^~”匹配 > 正则匹配 > 普通(最大前缀匹配)

aliasroot 

  1. location /css {
  2. alias /usr/local/nginx/static/css;
  3. index index.html index.htm;
  4. }
root 用来设置根目录,而 alias 在接受请求的时候在路径上不会加上 location
1 alias 指定的目录是准确的,即 location 匹配访问的 path 目录下的文件直接是在 alias 目录下查找的;
2 root 指定的目录是location 匹配访问的 path 目录的上一级目录 , 这个 path 目录一定要是真实存在 root 指定目录下的;
3 )使用alias标签的目录块中不能使用 rewrite break (具体原因不明);另外, alias 指定的目录后面必须要加上 "/" 符号!!
4 alias 虚拟目录配置中, location 匹配的 path 目录如果后面不带 "/" ,那么访问的 url 地址中这个 path 目录后面加不加"/" 不影响访问,访问时它会自动加上 "/" ; 但是如果 location 匹配的 path 目录后面加上 "/" ,那么访问的 url 地址中这个path 目录必须要加上 "/" ,访问时它不会自动加上 "/" 。如果不加上 "/" ,访问就会失败!
5 root 目录配置中,location 匹配的 path 目录后面带不带 "/" ,都不会影响访问。

UrlRewrite(资源路径重写)

rewrite 是实现 URL 重写的关键指令,根据 regex ( 正则表达式 ) 部分内容,
重定向到 replacement ,结尾是 flag 标记。
rewrite <regex> <replacement> [flag];
关键字   正则          替代内容      flag 标记
关键字:其中关键字 error_log 不能改变 正则: perl 兼容正则表达式语句进行规则匹配
替代内容:将正则匹配的内容替换成 replacement
flag 标记: rewrite 支持的 flag 标记
rewrite 参数的标签段位置:
server,location,if
flag 标记说明:
  • last #本条规则匹配完成后,继续向下匹配新的location URI规则
  • break #本条规则匹配完成即终止,不再匹配后面的任何规则
  • redirect #返回302临时重定向,浏览器地址会显示跳转后的URL地址
  • permanent #返回301永久重定向,浏览器地址栏会显示跳转后的URL地址

实例          

rewrite ^/([0-9]+).html$ /index.jsp?pageNum=$1 break;

访问:http://192.168.23.100/3.html

真实的访问uri是:http://192.168.23.100/index.jsp?pageNum=3 

防盗链配置  

valid_referers none | blocked | server_names | strings ....;
  • none, 检测 Referer 头域不存在的情况。
  • blocked,检测 Referer 头域的值被防火墙或者代理服务器删除或伪装的情况。这种情况该头域的值不以 “http://” “https://” 开头。
  • server_names ,设置一个或多个 URL ,检测 Referer 头域的值是否是这些 URL 中的某一个。
在需要防盗链的 location 中配置
  1. valid_referers 192.168.44.101;
  2. if ($invalid_referer) {
  3. return 403;
  4. }

使用 curl 测试
curl -I http://192.168.44.101/img/logo.png
带引用
curl -e "http://baidu.com" -I http://192.168.44.101/img/logo.png

高可用配置

使用keepalived维持nginx集群的高可用是比较简单的一种方式,通过安装keepalived并配置keepalived.conf,使得客户端访问一个虚拟ip,当主机nginx挂掉后,从机也能顶上去

安装方式一、编译安装
下载地址
https://www.keepalived.org/download.html#
使用 ./configure 编译安装
如遇报错提示
configure: error:
!!! OpenSSL is not properly installed on your system. !!!
!!! Can not include OpenSSL headers files. !!!
安装依赖
yum install openssl-devel
安装方式二、yum安装
yum install keepalived
配置
使用 yum 安装后配置文件在
/etc/keepalived/keepalived.conf
最小配置
第一台机器
  1. ! Configuration File for keepalived
  2. global_defs {
  3. router_id lb100
  4. }
  5. vrrp_instance atguigu {
  6. state MASTER # 备份服务器上这里写的是BACKUP
  7. interface ens33 # 网卡的名称
  8. virtual_router_id 51 # 主备机的virtual_router_id必须相同
  9. priority 100 # 主备机取不同的优先级,主机值较大,备份机值较小
  10. advert_int 1 # 隔多久发一次心跳
  11. authentication {
  12. auth_type PASS
  13. auth_pass 1111
  14. }
  15. virtual_ipaddress {
  16. 192.168.23.200
  17. }
  18. }

第二台机器

  1. ! Configuration File for keepalived
  2. global_defs {
  3. router_id lb110
  4. }
  5. vrrp_instance atguigu {
  6. state BACKUP
  7. interface ens33
  8. virtual_router_id 51
  9. priority 50
  10. advert_int 1
  11. authentication {
  12. auth_type PASS
  13. auth_pass 1111
  14. }
  15. virtual_ipaddress {
  16. 192.168.44.200
  17. }
  18. }
启动服务
systemctl start keepalived 

 

此时在第一台机器上通过ip addr可以看到ens33下有一个虚拟IP 192.168.44.200,第二台机器则没有。把第一台机器关机模拟nginx下线后,第二台机器下也会出现虚拟IP了 。

hadoop100

hadoop101 

 手动关闭Hadoop100的nginx服务和keepalived服务

此时hadoop100

hadoop101

Https证书配置

不安全的http协议

采用对称加密算法(凯撒算法),即客户端和服务器各自有特定的不会变化的钥匙进行加密和解密,灵活性低且不安全

openssl
openssl 包含: SSL 协议库、应用程序以及密码算法库
将不安全的http转化为安全的https
将新购买的域名映射到新购买的主机上

 通过域名访问时显示的是不安全的连接

此时通过https://域名的方式请求会发现网站拒绝访问

 首先申请SSL证书,这里我们选择阿里云

通过签发后下载nginx的证书

 将证书放到nginx的conf目录下,在nginx.conf目录中加入配置,证书会自动在conf目录下查找

  server {
    listen 443 ssl;
    server_name localhost;

    ssl_certificate pem文件的名字;
    ssl_certificate_key key文件的名字;
  }

 重启nginx.service服务,通过https://域名访问,此时已经显示网站安全

安装BBS(开源界的鼻祖)

将安装包放到html目录下

 在html目录下通过unzip Discuz_X3.4_SC_UTF8_20220131.zip解压

然后通过域名访问bbs/install进行安装即可 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/518529
推荐阅读
相关标签
  

闽ICP备14008679号