• Nginx


    高性能web服务器——Nginx

    一、简介

    1、Nginx是什么?

    • 是一个使用C语言开发的高性能http服务器和反向代理服务器以及电子邮件(IMAP/POP3)代理服务器
    • 是俄罗斯的程序设计师Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的

    2、Nginx的优点?

    • 轻量级
    • 在应对高并发情况时,能保持低资源低消耗高性能
    • 高度模块化的设计,配置简洁
    • 官方测试Nginx能够支撑5万并发量,并且CPU、内存等资源消耗却非常低,运行非常稳定

    3、Nginx的应用场景?

    • http服务器,Nginx可以独立提供http服务,可以做网页静态服务器
    • 虚拟主机,可以实现在一台服务器虚拟多个网站
    • 反向代理,负载均衡

    4、Nginx版本下载

    二、Nginx安装

    1、安装准备

    • yum -y install gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel

    2、Nginx安装

    • 下载安装包

      链接: https://pan.baidu.com/s/1kT0UttIciA6KB76b1Z4snQ  密码: 64kr
      
      移植到centos的/usr/local目录下
      
    • 解压

      [root@node01 local]# tar -zxvf nginx-1.10.3.tar.gz
      
    • 进入解压目录

      [root@node01 local]# cd nginx-1.10.3
      
    • 复制下面这段内容,执行configure,生成Makefile

      ./configure 
      --prefix=/usr/local/nginx 
      --pid-path=/var/run/nginx/nginx.pid 
      --lock-path=/var/lock/nginx.lock 
      --error-log-path=/var/log/nginx/error.log 
      --http-log-path=/var/log/nginx/access.log 
      --with-http_gzip_static_module 
      --http-client-body-temp-path=/var/temp/nginx/client 
      --http-proxy-temp-path=/var/temp/nginx/proxy 
      --http-fastcgi-temp-path=/var/temp/nginx/fastcgi 
      --http-uwsgi-temp-path=/var/temp/nginx/uwsgi 
      --http-scgi-temp-path=/var/temp/nginx/scgi
      
    • 编译

      [root@node01 nginx-1.10.3]# make
      
    • 安装

      [root@node01 nginx-1.10.3]# make install
      
    • 创建链接

      [root@node01 nginx-1.10.3]# ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/nginx
      
    • 验证配置有没有问题

      [root@node01 nginx-1.10.3]# nginx -t
      
    • 如果出现缺少文件夹的报错,自己创建一下

      [root@node01 nginx-1.10.3]# mkdir /var/temp/nginx/
      

    3、Nginx启动

    • 检查防火墙状态

      [root@node01 nginx-1.10.3]# systemctl status firewalld.service
      
    • 启动,查看进程

      [root@node01 nginx-1.10.3]# nginx
      [root@node01 nginx-1.10.3]# ps aux|grep nginx
      
    • 在浏览器输入centos网址,会出现Welcome to nginx界面

    4、nginx停止

    • 关闭并查看进程

      [root@node01 nginx-1.10.3]# nginx -s stop
      [root@node01 nginx-1.10.3]# ps aux|grep nginx
      

    5、nginx刷新配置

    • 启动后,若修改配置,如下刷新即可,不需要重启nginx

      [root@node01 nginx-1.10.3]# nginx
      [root@node01 nginx-1.10.3]# nginx -s reload
      

    三、nginx详解

    1、nginx安装目录

    [root@node01 nginx-1.10.3]# cd /usr/local/nginx
    [root@node01 nginx]# ll
    
    • conf:nginx的配置文件
    • html: nginx默认访问的根目录,存放静态资源
    • sbin:存放nginx运行脚本

    2、nginx配置文件

    [root@node01 nginx]# cd conf
    [root@node01 conf]# pwd
    /usr/local/nginx/conf
    [root@node01 conf]# cat nginx.conf
    
    • worker_processes:工作进程。根据硬件调整,通常等于CPU数量或者2倍于CPU数量
    • worker_connections:每个工作进程的最大连接数量。根据硬件调整,和前面工作进程配合起来用,尽量大,但是 别把CPU跑到100%就行
    • include:设置支持的文件类型。具体内容在mime.types中
    • sendfile:sendfile指令nginx是否调用sendfile函数(zero copy方式)来输出文件,对于普通应用,必须设为on。如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络IO处理速度,降低系统uptime
    • keepalive_timeout:超时时间
    • server:一个server就是一个虚拟机
    • listen:server虚拟机的端口号
    • server_name:server虚拟机的主机名
    • location:默认访问的资源
    • root html:虚拟主机的根目录

    四、nginx基本使用

    1、web站点

    如下目录,存的图片外部可以直接访问

    [root@node01 html]# pwd
    /usr/local/nginx/html
    [root@node01 html]# ll
    总用量 8
    -rw-r--r-- 1 root root 537 4月  25 15:32 50x.html
    -rw-r--r-- 1 root root 612 4月  25 15:32 index.html
    -rw------- 1 root root 69470 6月  28 18:37 WechatIMG19.jpeg
    

    2、多虚拟主机

    省钱、省事,直接修改配置文件

    • 1、复制一份html文件夹,叫py

      [root@node01 nginx]# cp -r html/ py
      
    • 2、修改index.html,让自己能区分

      [root@node01 nginx]# cd py
      [root@node01 py]# ll
      总用量 8
      -rw-r--r-- 1 root root 537 4月  25 16:27 50x.html
      -rw-r--r-- 1 root root  10 4月  25 16:28 index.html
      -rw-r--r-- 1 root root   0 4月  25 16:31 nginx.conf
      [root@node01 py]# vi index.html
      
    • 3、在原server下,再加一个server,配置nginx.conf

      [root@node01 conf]# pwd
      /usr/local/nginx/conf
      [root@node01 conf]# vi nginx.conf
          server{
              listen 85;
              server_name _;
              location / {
                    root py;
                      index index.html index.htm;
            }
          }
      
    • 4、刷新配置

      [root@node01 conf]# nginx -s reload
      

    3、404页面

    • 1、配置里,可以把如下注释打开,自己创建错误页面

    • 2、创建一个对应的404.html

      [root@node01 html]# echo "very sorry" > 404.html
      
    • 3、刷新配置

      [root@node01 html]# nginx -s reload
      

    4、nginx反向代理

    • 打开proxy_pass解释,配置192.168.190.130:85,当访问80端口的时候,实际上会转发到85端口

    • 刷新配置

      [root@node01 conf]# nginx -s reload
      

    5、负载均衡

    • 1、修改配置文件

      [root@node01 conf]# vi nginx.conf
      
    • 2、添加负载均衡池,80端口反向代理到负载均衡池

       upstream my_server{
             server 172.16.45.131:85 weight=1;
             server 172.16.45.131:90 weight=1;
      }
          server {
              listen       80;
              server_name  localhost;
      
              #charset koi8-r;
      
              #access_log  logs/host.access.log  main;
      
              location / {
                 # root   html;
                 # index  index.html index.htm;
                 proxy_pass http://my_server;
              }
              
              
              ...
              
              
        server{
              listen 85;
              server_name _;
              location / {
                    root py;
                      index index.html index.htm;
            }
          }
          server{
              listen 90;
              server_name _;
              location / {
                    root py2;
                      index index.html index.htm;
            }
          }
      
      
    • 3、复制py,创建py2,修改index.html文件,有区分就行

      [root@node01 nginx]# cp -r py/ py2
      
    • 4、刷新配置

      [root@node01 nginx]# nginx -s reload
      
    • 5、页面访问,此时实现了反向代理到85和90,按照权重去访问

  • 相关阅读:
    DVWA 黑客攻防演练(十)反射型 XSS 攻击 Reflected Cross Site Scripting
    DVWA 黑客攻防演练(九) SQL 盲注 SQL Injection (Blind)
    DVWA 黑客攻防演练(八)SQL 注入 SQL Injection
    DVWA 黑客攻防演练(七)Weak Session IDs
    DVWA 黑客攻防演练(六)不安全的验证码 Insecure CAPTCHA
    DVWA 黑客攻防演练(五)文件上传漏洞 File Upload
    工作流表结构设计
    Visual Studio 2019尝鲜----新建空项目体验
    《使用CSLA 2019:CSLA .NET概述》原版和机译文档下载
    .NET快速开发平台的在线预览
  • 原文地址:https://www.cnblogs.com/ghh520/p/13209568.html
Copyright © 2020-2023  润新知