Nginx知识点总结

Nginx

Nginx是一款免费开源的异步框架的Web服务器,主要功能有Http缓存、虚拟主机、反向代理和负载均衡等。

Http缓存

nginx可以缓存Web文档(如HTML页面和图像等静态资源),以减少服务器延迟

示例配置

        root /data/www/w3cschool;

        #图片缓存时间设置
        location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires 10d;
        }
         
        #JS和CSS缓存时间设置
        location ~ .*.(js|css)?$
        {
            expires 1h;
        }

虚拟主机

nginx可以通过配置多个server来配置多台虚拟主机,一个server对应一台虚拟主机,一台虚拟主机上可部署一个网站。各个虚拟主机的ip地址都是一样的(即服务器的ip地址),但是一个ip地址可以绑定不同的域名,所以每台虚拟主机都可以有自己独立的域名和端口号,但是80端口只有一个。一般情况下,多台虚拟主机共用80端口,然后根据域名来区分客户端的请求到底是访问哪一台虚拟主机,哪一个网站。

和反向代理、负载均衡本质区别

nginx发挥虚拟主机的功能,所有的请求都是在nginx内部处理的,各个网站也都是部署在nginx服务器上的,并没有涉及到另外的服务器,这和反向代理、负载均衡功能是有本质区别的。nginx在发挥反向代理和负载均衡功能时,只是起到一个中转站的作用,客户端发送的请求要先发给nginx服务器,然后由nginx服务器转发给web服务器。Web服务器返回的响应也要先发给nginx服务器,然后再由nginx服务器转发给客户端。

示例配置

server {
   listen 80;
   server_name www.yong.com;
   index index.html;
   root /data/www;
}

server {
   listen 80;
   server_name bbs.yong.com;
   index index.html;
   root /data/bbs;
}

Nginx反向代理

反向代理是相对于正向代理而言的,正向代理服务于客户端,反向代理服务于服务端。反向代理服务器位于客户端浏览器和web服务器之间,客户端不能直接向web服务器发请求,所有的请求都必须先发给反向代理服务器,然后由反向代理服务器转发给web服务器,同样,web服务器返回的响应也要先发给反向代理服务器,然后再转发给客户端。反向代理服务器发挥反向代理作用时就起到了一个中转站的作用。

正向代理和反向代理区别

  • 引用知乎上阿笠硕士的图


    Nginx知识点总结_第1张图片
    image.png

示例配置

/etc/nginx/nginx.conf可以 include /etc/nginx/conf.d/*.conf;

upstream tomcat1 {
    server 192.168.xx.xxx:8080;
}

server {
    listen 80;
    server_name www.aaa.com.cn;
    location / {
        proxy_pass http://tomcat1;
        index index.html index.htm;
    }
}
upstream tomcat2 {
    server 192.168.xx.xxx:8080;
}

server {
    listen 80;
    server_name www.bbb.com.cn;
    location / {
        proxy_pass http://tomcat2;
        index index.html index.htm;
    }
}

负载均衡

负载均衡指的是多个服务器共同完成一件事情,核心是“分摊压力”。Ngnix实现负载均衡指的是将请求转发给服务器集群。Ngnix默认处理负载均衡的方式是“轮询”,我们可以通过weight来调整权重。

示例配置

upstream tomcat1 {
    server 192.168.xx.xxx:8080;
    server 192.168.yy.yyy:8080 weight=2;
}

server {
    listen 80;
    server_name www.aaa.com.cn;
    location / {
        proxy_pass http://tomcat1;
        index index.html index.htm;
    }
}

Nginx 配置文件nginx.conf中文详解

https://www.w3cschool.cn/nginx/nginx-d1aw28wa.html

其他部署

  • 下图是一些项目采用的阿里云的部署方式,并没有用到Nginx的SLB功能,而是直接买了阿里云的SLB服务器


    Nginx知识点总结_第2张图片
    image.png

参考

Nginx 入门指南

nginx知识点总结

你可能感兴趣的:(Nginx知识点总结)