【Nginx】入门到配置

是什么?

 Nginx是一个高性能的反向代理服务器和高性能web服务器;延伸一下,很多人可能对于正向代理、反向代理不是很清晰,首先来具体了解一下。

正向代理

在这里插入图片描述
 正向代理,代理的客户端;比如我们要与后台访问数据,然后直接请求代理服务器就可以,然后代理服务器会根据我们的请求去访问具体的服务器,返回给我们想要的数据。从网站的角度上,我们在代理服务器上取数据一次记录,但是网站不知道我们是具体哪个客户端。需要注意。客户端必须设置正向代理服务器,需要知道正向代理服务器的ip地址,还有代理程序的端口;

作用

  1. 访问原来无法访问的资源;比如VPN
  2. 作为缓存,可以增加访问资源的速度;
  3. 对于客户端访问授权,上网认证等;
  4. 记录用户访问记录,隐藏用户的信息;

反向代理

在这里插入图片描述
 反向代理,客户端不知道访问的哪台服务器,只是去访问代理服务器。反向代理对外是透明的,访问者并不知道自己访问的是代理,**因为客户端不需要任何配置就可以访问。**它的方式是代理服务器接受intenet的连接请求,然后将请求转发给内部网络的服务器,并将结果返给我internet连接的请求客户端。

作用:

  1. 保证内网安全,组织web攻击
  2. 负载均衡,优化服务器的负载

配置

  1. 下载tar包;
  2. tar -zxvf nginx.tar.gz
  3. …/configure [–prefix]
  4. make && make install

nginx.conf

主要的模块配置

  1. main
  2. event:最大连接数
events {
    worker_connections  1024;
}


  1. http:与外界连接
http{

}
  1. 虚拟主机配置
 server {
        listen       80;                    //监听端口
        server_name  localhost;  //此主机

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;  //在这个路径下,访问的页面
        }

location 配置

语法

location [= | ~* | ^~ ] /uri/ {...}

配置规则

  1. location = /uri 精准匹配
  2. location ^~ /uri 前缀匹配
  3. location ~ /uri
  4. location / 通用匹配

优先级

  1. 精准匹配是优先级最高
  2. 普通匹配(最长的匹配)
  3. 正则匹配

功能

一、负载均衡

  按照一定的分配策略,然后将网络负载均衡的分摊到网络集群的各个单元中,使得单个重的负载均衡任务能够分摊到多个单元然后并发处理,减少了访问时间。
格式为

upsteam /{
	server address [paramters
}
	

负载均衡算法

  1. 轮询算法(默认),如果服务器宕机后,然后自动的踢出
  2. ip_hash根据请求的ip地址进行hash
  3. 权重轮询 weight

在这里插入图片描述
在这里插入图片描述

二、动静分离

 用户在进行访问页面的时候,然后从服务器端获取相应资源通过浏览器解析渲染最后展示给用户,而服务端可以返回这种类型的内容,比如js 、html、png等等,然后浏览器就是通过Nginx下面conf目录下的mime.types文件进行决定用什么形式展示。

l
ocation ~ .*\.(js|css|png|svg|ico|jpg)$ {
valid_referers none blocked 192.168.13.160 www.百度.com;
if ($invalid_referer) {
return 404;
} r
oot static-resource;
expires 1d;
}

好处

  • 动静分离可以将静态文件进行缓存,压缩然后提高了网站的性能
    -(1)缓存:采取好的缓存策略可以很好地减少对网络带宽的占用,提高访问速度,提升用户的体验度,而且可以减轻Nginx服务器的缓存负担。Nginx中用expires设置缓存
    (2)压缩::在网站上一些静态东西内存比较大,所以用户访问速度比较慢,所以Nginx中提供了一种gzip压缩优化手段,这样就可以降低文件的大小来提高了传输速度。
    代码实现:

  • Nginx本身就是一个高性能的静态web服务器;

# 打开压缩功能
gzip  on; 

    gzip_vary on;
  # 超过多大,进行压缩
    gzip_min_length 10k;
   # 设置缓存区,下面是按照16k的4倍进行分配内存
    gzip_buffers 4 16k;
    # 压缩等级,压缩等级越高,压缩越好
    gzip_comp_level 6;
    # 表示是否需要传输gzip压缩标志;
     gzip_vary on;
  
  # 针对的压缩文件
    gzip_types  text/plain application/javascript 
application/x-javascript application/json text/css text/scss 
application/xml text/javascript application/x-httpd-php image/jpeg 
image/gif image/png image/x-icon;

    client_max_body_size 20M;

    proxy_connect_timeout 18000;

    proxy_send_timeout 18000;

    proxy_read_timeout 18000;

三、防盗链

 如果在设置网站的过程中,对于自己网站的图片不希望被别人直接通过地址访问,或者想要图片有版权,防盗链就起到很好的作用。

四、跨域访问

 当;当两个节点的协议、域名、端口等不同,那么两个节点之间的访问就是跨域操作。浏览器为了安全问题是限制跨域访问,所以跨域也是浏览器本身限制的。

跨域解决办法

修改proxy_demo.conf配置
server{
listen 80;
server_name localhost;
location / {
proxy_pass http://192.168.11.154:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_send_timeout 60s;
proxy_read_timeout 60s;
proxy_connect_timeout 60s;
add_header 'Access-Control-Allow-Origin' '*'; // #允许来自所有的访问地址
add_header 'Access-Control-Allow-Methods' 'GET,PUT,POST,DELETE,OPTIONS'; //支持的
请求方式
add_header 'Access-Control-Allow-Header' 'Content-Type,*'; //支持的媒体类型
} l
ocation ~ .*\.(gif|jpg|ico|png|css|svg|js)$ {
root static;
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值