nginx服务器架构初探(nginx与apache的区别,nginx高并发缘由,nginx一些应用案例)

(一)nginx服务器如何处理请求?
1 多进程机制
2 每个工作进程采用异步非阻塞方式
3 采用epoll事件驱动模型

同步异步:通信模式的概念
同步:发送方发送请求后,需要等待接收方发回的响应后才接着发送下一个请求。
异步:发送方发送请求后,不等待接收方发回的响应,就直接接着发送下一个请求。
异步机制所有来自发送方的请求形成·一个队列,接收方处理完成后通知发送方
阻塞非阻塞:描述进程处理调用的方式,

阻塞和非阻塞关注的是程序在等待调用结果(消息,返回值)时的状态.

阻塞调用是指调用结果返回之前,当前线程会被挂起。调用线程只有在得到结果之后才会返回。
非阻塞调用指在不能立刻得到结果之前,该调用不会阻塞当前线程。
举个例子:
你打电话问书店老板有没有《分布式系统》这本书,你如果是阻塞式调用,你会一直把自己“挂起”,直到得到这本书有没有的结果,如果是非阻塞式调用,你不管老板有没有告诉你,你自己先一边去玩了, 当然你也要偶尔过几分钟check一下老板有没有返回结果。
在这里阻塞与非阻塞与是否同步异步无关。跟老板通过什么方式回答你结果无关。
1SSL(safe socket layer)网站应用案例:
server4:

vim /usr/local/lnmp/nginx/conf/nginx.conf

104     server {
105         listen       443 ssl;
106         server_name  localhost;
107         ssl_certificate      cert.pem;
108         ssl_certificate_key  cert.pem;
109 
110         ssl_session_cache    shared:SSL:1m;
111         ssl_session_timeout  5m;
112 
113         ssl_ciphers  HIGH:!aNULL:!MD5;
114         ssl_prefer_server_ciphers  on;
115 
116         location / {
117             root   /www;
118             index  index.html index.htm;
119         }
120     }
    server {
                listen 80;
                server_name www.westos.com;

                location / {
                root /www;
                index index.html;
                }
                }

root@server4 html]# mkdir /www
[root@server4 html]# cd /www/
[root@server4 www]# vim index.html
    <h1>www.westos.com</h1>
[root@server4 conf]# nginx -s reload
在浏览器访问:https://www.westos.com,下载证书,可以访问成功: 

2 nginx地址重定向:
westos.com重定向到www.westos.com

vim /usr/local/lnmp/nginx/conf/nginx.conf
server {
147                 listen 80;
148                 server_name westos.com;
149                 rewrite ^/ https://www.westos.com;
150         }
#在浏览器端访问:westo.com会跳转到https://www.westos.com;
www.westos.com重定向到https://www.westos.com
 server {
                listen 80;
                server_name www.westos.com;
                rewrite ^/ https://www.westos.com;
        }
#访问www.westos.com 跳转到https://www.westos.com
Nginx高级篇sendfile配置
sendfile: 设置为on表示启动高效传输文件的模式。sendfile可以让Nginx在传输文件时直接在磁盘和tcp socket之间传输数据。如果这个参数不开启,会先在用户空间(Nginx进程空间)申请一个buffer,用read函数把数据从磁盘读到cache,再从cache读取到用户空间的buffer,再用write函数把数据从用户空间的buffer写入到内核的buffer,最后到tcp socket。开启这个参数后可以让数据不用经过用户buffer

2.1 实现局部重定向:访问westos.com/img/redhat.jpg重定向到https://www.westos.com/img/tedhat.jpg

vim /usr/local/lnmp/nginx/conf/nginx.conf
server {
                listen 80;
                server_name westos.com;
                rewrite ^/(.*) https://www.westos.com/$1;
        }

3 防盗链
在防盗链的主机上做一下配置:

[root@server5 lnmp]# vim /usr/local/lnmp/nginx/conf/nginx.conf
server {
                listen 80;
                server_name www.westos.com;

                location / {
                root /www;
                }
                location ~*\.(|jpg|gif|png|)$ {
                        valid_referers www.westos.com;
                        if ($invalid_referer) {
                        rewrite ^/ http://bbs.westos.com/daolian.jpg;
                        }
                }
        }
        server {
                listen 80;
                server_name bbs.westos.com;
                location / {
                root /bbs;
                index index.html;
                }
        {
[root@server5 www]# nginx -s reload
[root@server5 /]# mkdir bbs
[root@server5 www]# cd /bbs/
[root@server5 bbs]# ls
daolian.jpg
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值