ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

nginx

2022-04-04 23:32:44  阅读:162  来源: 互联网

标签:index 代理服务器 server nginx html com


nginx

目录

一、nginx概述

1. nginx简介

  • nginx(发音同 engine x)是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器

2. nginx特点

  • 内存占用少,并发能力强

  • nginx专为性能优化而开发, 在高连接并发的情况下,能够支持高达 50000 个并发连接数的响应

    Tomcat仅支持500左右

  • nginx支持热部署, 可以在不间断服务的情况下,对软件版本进行升级

3. nginx应用场景

  • http服务器

    可以做网页静态服务器

  • 虚拟主机

    实际开发时实现了一台服务器虚拟出多个网站(不同域名/端口号)

  • 反向代理,负载均衡

    正向代理:正向代理代理的是客户端, 服务端不知道实际发起请求的客户端

    反向代理:代理服务器接收客户端的请求,然后将请求转发给网站内部应用服务器,并将从服务器上得到的结果返回给客户端

    单台服务器不能满足用户的请求时,需要用多台服务器集群,可以使用nginx做代理服务器,nginx接收到请求后会将请求转发给后面的应用服务器

    多台服务器可以平均分担负载,不会因为某台服务器负载高宕机或者某台服务器闲置的情况

二、nginx使用方式

  • 启动

    cd /usr/local/nginx/sbin
    
    ./nginx
    
  • 关闭

    ./nginx -s stop
    
  • 查看进程

    ps aux | grep nginx
    
  • 启动nginx后在浏览器中访问服务器IP前,需要先关闭防火墙

    默认配置了80端口

    /sbin/iptables -I INPUT -p tcp --dport 指定的端口号 -j ACCEPT
    

三、配置虚拟主机

1. 通过端口区分不同的虚拟主机

  • 在nginx.conf中配置虚拟主机,一个server代表一个虚拟主机

    worker_processes  1;
    
    events {
        worker_connections  1024;
    }
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
        sendfile        on;
        keepalive_timeout  65;
    
        server {
            listen       80;
            server_name  localhost; # 配置localhost无需更改host自动映射为本机IP
    
            location / {
                root   html;
                index  index.html index.htm;
            }
            
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
        }
    
        # 配置新的server
        server {
            listen       81; # 修改端口
            server_name  localhost;
    
            location / {
                root   html81; # 重新制定一个目录
                index  index.html index.htm;
            }
            
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
        }
    }
    
  • 拷贝一份html文件夹作为新server的root目录

    /usr/local/nginx
    
    cp -r html/ html81
    
  • 重新加载nginx

    cd /usr/local/nginx/sbin
    
    ./nginx -s reload
    
  • 访问当前服务器IP下配置的不同端口号

    http://192.168.xxx.xxx 访问第一个server
    http://192.168.xxx.xxx:81 访问第二个server
    

2. 通过域名区分不同的虚拟主机

  • 相关概念

    • 域名级别
      • 一级:例如.com.org.cn
      • 二级:例如baidu.comzhihu.com
      • 三级:例如www.baidu.comwww.zhihu.com
    • 域名绑定
      • 一个域名对应一个IP地址,一个IP地址可以被多个域名绑定
      • 通过DNS服务器去解析域名
  • 配置域名映射的方式

    • 可以在本机上配置域名和IP的映射关系,如果hosts文件中配置了域名和IP的对应关系,不需要走DNS服务器

      修改window中的hosts文件:(C:\Windows\System32\drivers\etc)

      192.168.xxx.xxx www.ng.com
      
    • 也可以使用SwitchHosts修改hosts中域名映射配置(同上面的方法,只是简化hosts文件的修改)

  • 通过域名区分不同的虚拟主机步骤

    1. 在nginx.conf中配置虚拟主机,端口号相同,server_name和root目录名不同

      worker_processes  1;
      
      events {
          worker_connections  1024;
      }
      
      http {
          include       mime.types;
          default_type  application/octet-stream;
          sendfile        on;
          keepalive_timeout  65;
      
          server {
              listen       80;
              server_name  www.t1conycass.com; # 配置后需要在hosts文件中修改该域名对应的IP
      
              location / {
                  root   html-t1; # 重新制定一个目录
                  index  index.html index.htm;
              }
              
              error_page   500 502 503 504  /50x.html;
              location = /50x.html {
                  root   html;
              }
          }
      
          # 配置新的server
          server {
              listen       80; # 修改端口
              server_name  www.t2conycass.com; # 配置后需要在hosts文件中修改该域名对应的IP
      
              location / {
                  root   html-t2; # 重新制定一个目录
                  index  index.html index.htm;
              }
              
              error_page   500 502 503 504  /50x.html;
              location = /50x.html {
                  root   html;
              }
          }
      }
      

      重新加载nginx配置文件

      cd /usr/local/nginx/sbin
      
      ./nginx -s reload
      
    2. 使用SwitchHosts修改hosts中域名映射配置,两个域名同时绑定一个IP

      # nginx
      192.168.197.128 www.t1conycass.com
      192.168.197.128 www.t2conycass.com
      

四、nginx作为反向代理服务器

1. 代理概述

  • 代理(服务器):客户机在发送请求时,不会直接发送给目的主机,而是先发送给代理服务器,代理服务器接受客户机请求之后,再向目的主机发出,并接收目的主机返回的数据再发送给客户机

  • 正向代理:正向代理代理的是客户端,服务端不知道实际发起请求的客户端

    案例:国内访问谷歌,直接访问访问不到,我们可以通过一个正向代理服务器,先将请求发送到到代理服务器,代理服务器能够访问谷歌,这样由代理去谷歌取到返回数据,再返回给我们,这样我们就能访问谷歌了

  • 反向代理:反向代理代理的是服务器,代理服务器接收客户端的请求,将请求转发到网站内部的应用服务器上,并将应用服务器上得到的结果返回给客户端

2. nginx实现反向代理

  • nginx作为反向代理服务器安装在服务端,nginx的功能就是将请求转发给后面的应用服务器

  • 实现步骤

    1. 在服务端启动两个Tomcat服务器端口号分别是8080和8081

      ./bin/startup.sh 
      

      在浏览器中访问两个Tomcat,可查看到Tomcat主页面

      http://192.168.xxx.xxx:8080/
      http://192.168.xxx.xxx:8081/
      
    2. 在nginx.conf中配置反向代理服务器

      # 反向代理配置1
      upstream ramentherapy01 {
          # 用server定义HTTP地址
          server 192.168.197.128:8080;
      }
      server {
          listen       80; # 修改端口
          server_name  www.ramentherapy01.com;
      
          location / {
              # proxy可以将请求代理到对应的upstream
              proxy_pass http://ramentherapy01; # 转发的地址
              index  index.html index.htm;
          }
      }
      
      # 反向代理配置2
      upstream ramentherapy02 {
          # 用server定义HTTP地址
          server 192.168.197.128:8081;
      }
      server {
          listen       80; # 修改端口
          server_name  www.ramentherapy02.com;
      
          location / {
              # proxy可以将请求代理到对应的upstream
              proxy_pass http://ramentherapy02; # 转发的地址
              index  index.html index.htm;
          }
      }
      

      重新加载nginx配置文件

      cd /usr/local/nginx/sbin
      
      ./nginx -s reload
      
    3. 使用SwitchHosts修改hosts中域名映射配置,两个域名同时绑定一个IP

      192.168.197.128 www.ramentherapy01.com
      192.168.197.128 www.ramentherapy02.com
      

五、nginx作为负载均衡器

1. 负载均衡器概述

  • 反向代理服务器中的负载均衡器作用:将大量的请求合理地发送给集群中的不同服务器, 避免临时的网络堵塞

2. nginx实现负载均衡

  • 负载均衡策略

    • 轮询:默认策略, 每个请求按照时间顺序逐一分配到不同的服务器,如果某一个服务器下线,能自动剔除
    • 权重:可以根据服务器的实际情况调整服务器权重,权重越高分配的请求越多,权重越低,请求越少(默认都是1)
  • 实现步骤

    1. 在nginx.conf中配置反向代理服务器(默认策略是轮询)

      # 负载均衡
      upstream ramentherapy {
          # 用server定义HTTP地址
          server 192.168.197.128:8080;
          server 192.168.197.128:8081;
      }
      server {
          listen       80; # 修改端口
          server_name  www.ramentherapy.com;
      
          location / {
              # proxy可以将请求代理到对应的upstream
              proxy_pass http://ramentherapy; # 转发的地址
              index  index.html index.htm;
          }
      }
      

      在nginx.conf中配置反向代理服务器(权重)

      # 负载均衡
      upstream ramentherapy {
          # 用server定义HTTP地址
          server 192.168.197.128:8080 weight=1;
          server 192.168.197.128:8081 weight=10;
      }
      server {
          listen       80; # 修改端口
          server_name  www.ramentherapy.com;
      
          location / {
              # proxy可以将请求代理到对应的upstream
              proxy_pass http://ramentherapy; # 转发的地址
              index  index.html index.htm;
          }
      }
      
    2. 重新加载nginx配置文件

      cd /usr/local/nginx/sbin
      
      ./nginx -s reload
      
    3. 使用SwitchHosts修改hosts中域名映射配置

      192.168.197.128 www.ramentherapy.com
      

标签:index,代理服务器,server,nginx,html,com
来源: https://www.cnblogs.com/Ramentherapy/p/16101038.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有