美文网首页
Nginx的介绍

Nginx的介绍

作者: 伍陆柒_ | 来源:发表于2019-05-23 09:54 被阅读0次

    什么是Nginx

    1526187409033.png

    NIO:not-blocking-io 非阻塞IO

    BIO:blocking-IO 阻塞IO

    nginx可以作为web服务器,但更多的时候,我们把它作为网关,因为它具备网关必备的功能:

    • 反向代理
    • 负载均衡
    • 动态路由
    • 请求过滤

    nginx作为web服务器

    Web服务器分2类:

    • web应用服务器,如:
      • tomcat
      • resin
      • jetty
    • web服务器,如:
      • Apache 服务器
      • Nginx
      • IIS

    区分:web服务器不能解析jsp等页面,只能处理js、css、html等静态资源。

    并发:web服务器的并发能力远高于web应用服务器。

    Nginx + tomcat

    nginx作为反向代理

    什么是反向代理?

    • 代理:通过客户机的配置,实现让一台服务器代理客户机,客户的所有请求都交给代理服务器处理。
    • 反向代理:用一台服务器,代理真实服务器,用户访问时,不再是访问真实服务器,而是代理服务器。

    nginx可以当做反向代理服务器来使用:

    • 我们需要提前在nginx中配置好反向代理的规则,不同的请求,交给不同的真实服务器处理
    • 当请求到达nginx,nginx会根据已经定义的规则进行请求的转发,从而实现路由功能!

    利用反向代理,就可以解决我们前面所说的端口问题,如图

    1526016663674.png

    安装和使用

    下载:http://nginx.org/en/download.html
    Windows直接下载解压即可使用
    Linux

    • 解压
    tar -xvf nginx-1.15.12.tar.gz
    unzip nginx-1.15.12.zip
    
    • 配置
      进入nginx目录
      cd nginx-1.15.12
    # 安装依赖包
    yum -y install gcc gcc-c++ autoconf automake make
    yum install pcre-devel
    yum install zlib zlib-devel
    yum install openssl openssl-devel
    
    # 配置目录
    ./configure --prefix=/opt/nginx --sbin-path=/usr/bin/nginx
    # 编译安装
    su root
    make && make install 
    

    这里指定安装的目录是在:/opt/nginx目录下

    • 启动
    # 启动
    nginx
    ps -ef | grep nginx 查看进程
    # 停止
    nginx -s stop
    # 重新加载
    nginx -s reload
    
    image.png
    • 关闭防火墙,否则占用80端口
    # 开机不启动,重启就关了
    chkconfig iptables off
    shutdown -r now
    # 临时关闭
    service iptables off
    
    • 重启linux后,再次运行nginx,在浏览器地址栏输入linux ip地址,即可访问到linux欢迎页,说明启动成功

    反向代理配置

    找到/opt/nginx/的nginx.cof


    1526188831504.png

    nginx中的每个server就是一个反向代理配置,可以有多个server
    完整配置:

    user  nobody;
    worker_processes  1;
    
    events {
        worker_connections  1024;
    }
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
        sendfile        on;
       
        keepalive_timeout  65;
    
        gzip  on;
        server {
            listen       80;
            server_name  manage.leyou.com;
    
            proxy_set_header X-Forwarded-Host $host;
            proxy_set_header X-Forwarded-Server $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    
            location / {
                proxy_pass http://127.0.0.1:9001; # 此处ip如果是本机写本机ip,如果nginx配置虚拟机上,需要反向代理的服务不再虚拟机上,请填写服务所在电脑ip
                proxy_connect_timeout 600;
                proxy_read_timeout 600;
            }
        }
        server {
            listen       80;
            server_name  api.leyou.com;
    
            proxy_set_header X-Forwarded-Host $host;
            proxy_set_header X-Forwarded-Server $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    
            location / {
                proxy_pass http://127.0.0.1:10010;
                proxy_connect_timeout 600;
                proxy_read_timeout 600;
            }
        }
    }
    

    重启nginx

    nginx -s reload
    

    相关文章

      网友评论

          本文标题:Nginx的介绍

          本文链接:https://www.haomeiwen.com/subject/duupzqtx.html