【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;
}

http:与外界连接

http{

}

虚拟主机配置

 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文件进行决定用什么形式展示。

location ~ .*\.(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;
}
}


 

猜你喜欢

转载自blog.csdn.net/hejingfang123/article/details/117536219