• Nginx


    是一款服务器

    轻量级的Web服务器,也是反向代理服务器,也是电子邮件(IMAP/POP3)代理服务器

    特点是:占有内存少,并发能力强

    ngnix的并发能力在同类型的web服务器中表现较好

    使用ngnix的网站有:百度,京东,新浪,网易,腾讯,淘宝

    nginx: download

     然后直接解压即可

    现在介绍在linux系统上安装ngnix

    1.安装gcc环境

    yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
    

    2.下载Nginx安装包:

    wget  https://ngnix.org/download/nginx-1.23.2.tar.gz
    

    3.解压

    tar -zxvf nginx-1.23.2.tar.gz
    

    4.cd nginx-1.23.2

    5.创建nginx 目录   mkdir -p /usr/local/nginx

    6.指定安装位置

    ./configure --prefix=/usr/local/nginx   //这表示将安装到/usr/local/nginx 文件夹里

    7.安装nginx

    make && make install 

    此时进入/usr/local/nginx就可以进入nginx的路径了

    1. [root@localhost nginx]# tree
    2. .
    3. ├── conf
    4. │   ├── fastcgi.conf
    5. │   ├── fastcgi.conf.default
    6. │   ├── fastcgi_params
    7. │   ├── fastcgi_params.default
    8. │   ├── koi-utf
    9. │   ├── koi-win
    10. │   ├── mime.types
    11. │   ├── mime.types.default
    12. │   ├── nginx.conf
    13. │   ├── nginx.conf.default
    14. │   ├── scgi_params
    15. │   ├── scgi_params.default
    16. │   ├── uwsgi_params
    17. │   ├── uwsgi_params.default
    18. │   └── win-utf
    19. ├── html
    20. │   ├── 50x.html
    21. │   └── index.html
    22. ├── logs
    23. └── sbin
    24. └── nginx

    nginx配置环境变量

    打开配置文件:

    vim /etc/profile
    PATH=/usr/local/nginx/sbin:$PATH

    Nginx命令:

    先进入/usr/local/nginx/sbin

    (1)查看nginx版本

    1. [root@localhost]# nginx -v
    2. nginx version: nginx/1.23.2

    (2)启动nginx

    [root@localhost]# nginx
    

    启动ngnix服务后,你就可以在浏览器中输入虚拟机的地址,就可以访问到nginx首页了(nginx默认占用80端口,80端口默认可以省略,所以直接输入服务器地址即可)

    (3)查看nginx进程

    1. [root@localhost sbin]# ps -ef | grep nginx
    2. root 11031 1 0 23:06 ? 00:00:00 nginx: master process ./nginx
    3. nobody 11034 11031 0 23:06 ? 00:00:00 nginx: worker process
    4. root 11049 3055 0 23:07 pts/0 00:00:00 grep --color=auto nginx

    前面两行重点关注,一个是master进程,一个是worker进程

    (4)停止nginx服务

    nginx -s stop
    

    Ngnix具体应用:部署静态资源 ,反向代理,负载均衡

    (1)使用Ngnix部署静态资源:

    静态资源:html页面,css文件,js文件,图片,视频等资源

    相对于tomcat,nginx处理静态资源的能力更加高效,所以一般会将静态资源部署到nginx中,将静态资源部署到ngnix非常简单,只需要使用拷贝命令将文件复制到nginx安装目录下的html目录中即可

    cp  静态资源地址(比如/test/helloworld.html)  nginx的html目录中(比如说/usr/local/nginx/html/)

     此时你在本地浏览器上输入:(默认80端口)

    http://192.168.58.130/helloworld.html

    就可以访问到这个页面了

    (2)反向代理

    正向代理是代理客户端,反向代理是代理服务器端

    正向代理:在客户端和原始服务器(origin server)之间有一个代理服务器

    客户端向代理服务器发送一个请求,并且指定原始服务器的地址,于是代理服务器向原始服务器转交请求,并将获得的内容返回给客户端

    一般是在客户端设置代理服务器

    比如你无法直接访问谷歌服务器,可以通过一个代理服务器(VPN)间接访问谷歌服务器

    反向代理:在客户端不设置代理服务器,客户端也不用给反向代理服务器发送什么原始服务器的地址(这是正向代理和反向代理的最大区别),客户端直接向反向代理服务器发送请求

    实际上,反向代理服务器还是会将请求转发给目标服务器

     反向代理实际应用场景:无法直接访问web服务器1,web服务器2,web服务器3(这些服务器组成一个内网,局域网),于客户端通过反向代理服务器去访问这些web服务器

    反向代理实现:

    安装了nginx的服务器100作为反向代理服务器, 我们实际想要访问的是101这台机器

    在反向代理服务器中进行配置:

    进入ngnix的conf文件夹,打开nginx.conf文件:

    1. cd /usr/local/nginx/conf
    2. vim nginx.conf

     将下面这段配置写入这个文件里:表示针对反向代理服务器82端口的请求会转发到101服务器的8080端口

    1. server
    2. {
    3. listen 82:
    4. server_name localhost;
    5. location/
    6. {
    7. proxy_pass http://192.168.138.101:8080#将请求转发到指定服务器端口
    8. }
    9. }

     此时就可以通过访问100服务器的80端口间接访问101服务器的8080端口

    (3)负载均衡

    单台服务器变成服务器集群,服务器集群接收负载均衡器发送过来的请求

     负载均衡其实是基于反向代理实现的:

    当我们请求nginx这台服务器的时候,就会转发给服务器集群中的某一台服务器

    1. upstream targetserver#通过upstream指令定义一组服务器
    2. {
    3. server 192.168.138.101:8080;
    4. server 192.168.138.102:8080;
    5. }
    6. server
    7. {
    8. listen 8080;
    9. server_name localhost;
    10. location/
    11. {
    12. proxy_pass http://targetserver;//targetserver在上面定义
    13. }
    14. }

    没有设置负载均衡策略,那就是默认采用

    (1)轮询(轮流来)的算法

    除了有轮询算法,还有其他算法:

    (2)加权轮询:配置越好的分配到的请求越多

    1. upstream targetserver#通过upstream指令定义一组服务器
    2. {
    3. server 192.168.138.101:8080 weight=10;
    4. server 192.168.138.102:8080 weight=5;
    5. }

    (3)IP_Hash:根据客户端发送过来的请求的IP地址,对这个IP地址进行哈希运算,然后对服务器节点的数量进行取模

     

    upstream targetserver#通过upstream指令定义一组服务器
    {
       ip_hash;

        server  192.168.138.101:8080   ;
        server  192.168.138.102:8080   ;
    }

     (4)url_hash

     

     (5)least_connection

    最少连接数,哪台服务器上连接数少就将请求转发到这台服务器上

     

  • 相关阅读:
    【Flink】FlinkCDC获取mysql数据时间类型差8小时时区解决方案
    C语言|递归|青蛙跳台阶和汉诺塔问题
    解密键盘输入:探索设备控制器的奥秘
    mysql交互下的命令
    http 内容协商
    07 【数组及常用方法】
    【C++ 初阶】运算符重载详解✌
    混沌系统在图像加密中的应用(小波混沌神经网络)
    QT(37)-mosquitto-MQTT客户端
    (附源码)ssm考生评分系统 毕业设计 071114
  • 原文地址:https://blog.csdn.net/weixin_47414034/article/details/128056738