Nginx服务器-配置篇

书接上回,咱们已经对Nginx服务器有了一个大致的概念,而本篇就俩聊一聊Nginx服务器的常用配置。

(1)虚拟主机配置

什么是虚拟主机呢?
虚拟主机:同一台nginx服务器,可以支持多个网站的运行,虚拟主机之间互相独立,有完整功能。
简单的来说,当你输入不同的域名经过同一台Nginx服务器不同的主机配置转发到相应服务,这些多个相应服务器就成为虚拟主机。
一个http配置块下面配置多个server,这要就实现了多个虚拟主机的配置。

http {
    # 对应虚拟主机的配置
    server{
       # 监听端口
       listen       80;
       # 监听域名
       server_name  localhost;
       # 定位出路径或文件地址
       location / {
             # 相对路径
       		 root   html;
       		 # 默认跳转的首页地址
             index  index.html index.htm;
       }
    }
    
    server{
    
    }
}

(2)日志配置

众所周知,一个项目中,日志模块是必不可少的。一个优秀的日志模块可以在日后的维护中节省不少时间。那么看看Nginx的日志模块的相关配置吧。
通过Nginx的日志模可以获得用户地址信息、跳转来源、终端、以及url访问量等等。

#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;

上边就是它的模板
日志demo

192.168.1.11 - - [04/Mar/2020:13:03:39 +0800] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.100 Safari/537.36"

我们可以通过下面这个表格来获取它具体的详细信息。
模块名称及相关用途

(3)反向代理配置

配置这一模块,就需要你有另一个服务器了,我们一般用的都是tomcat服务器。
在我们的server_est配置块下边加油如下配置项即可;

http {
    # 对应虚拟主机的配置
    server{
       # 监听端口
       listen       80;
       # 监听域名
       server_name  localhost;
       # 定位出路径或文件地址
       location / {
             # 相对路径
       		 root   html;
       		 # 默认跳转的首页地址
             index  index.html index.htm;
       }
    }
    
    server_test{
        # 监听端口
           listen       80;
           # 监听域名
           server_name  my123.com;
           # 定位出路径或文件地址
           # location / {
                 # 相对路径
       		    #  root   my123;
       		     # 默认跳转的首页地址
                #  index  index.html;
      #  }
       location / {
            proxy_pass  http://127.0.0.1:8080;
        }
    }
}

可以看到 我们将上一篇的location替换为我们要代理的服务器IP,当客户端用相应的域名访问Nginx服务器是就会转发到我们所配置的ip服务中去。
​如果我们想代理多个tomcat服务器我们可以

location ~ /tomcat1/ {
            proxy_pass  http://127.0.0.1:8080;
        }

        location ~ /tomcat2/ {
            proxy_pass  http://127.0.0.1:8081;
        }

这样的话 ,当我们在访问域名时再加上tomcat1或2就可以分别访问到不同的服务器啦。

(4)负载均衡

随着现在网络技术的进步与发展,面对数量巨大的访问往往对与一台服务器来说是绝对处理不了的,所以就出现分布式架构。所谓分布式就是,将原本处理请求的B服务器增加到B1、B2、B3或者更多。让三台服务器分摊压力。而分摊压力的这个操作就是负载均衡。最常见的负载均衡方法就是轮循,通俗来说就是让第一个请求打到服务器B1上、第二个请求打到服务器B2上、第三个请求打到服务器B3上,然后一直循环下去。但是服务器之间的硬件属性又不可能完全相同,这就导致他们处理请求的能力与速度不同,所以一般我们呢还会用到加权轮循的方式。具体的配置如下:

  upstream myserver{
        # server列表的地址和端口
        server 192.168.1.20:8080 weight=2;
        server 192.168.1.20:8081 weight=1;
    }

根据我们后面配置的权重值,请求会均匀的打到相应服务器,但是我们在请求访问时,不可能只请求一次。一般都是先登录然后发送二次请求来办理业务,但这个时候登录的请求被B1处理,但是办理业务的请求却打到了B2上,这样显然是不合适的,所以我们还需要配置一个ip_hash;关键字来使相同的ip打到同一个服务器上。

  upstream myserver{
        # server列表的地址和端口
        server 192.168.1.20:8080 weight=2;
        server 192.168.1.20:8081 weight=1;
        ip_hash;
    }

(5)动静分离

这里所说的动静分离可不是说把动态资源和静态资源进行物理分离,而是把请求分为动态请求如jsp等等和静态请求如图片等等进行分离。这样做的优势在于让最终的服务器可以全力处理动态请求。
直接上配置:

# 动态资源配置
location ~ .*.jsp$ {
    proxy_pass http://myserver;
}       

# 静态资源配置
location ~ .*\.(gif|jpg|png|css)$ {
    root /usr/local/nginx/image;
    # 在浏览器端使用缓存  设置过期时间
    expires 3d;
}

(6)url重写

对url的规范化处理,域名更换时的新旧跳转,一些额外的参数调整等等

server{
    listen 80;
    server_name my123.com;
    rewrite ^/(.*) http://www.my123.com/$1 permanent;
}

访问 my123.com 地址栏会变成www.my123.com

关于Nginx配置的相关内容暂时就分享这么多,其实是作者本人水准是在有限,只是把相关知识作为记录,然后分享给大家。希望可以帮助到你。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值