• Liunx之nginx配置


    一、nginx安装

    卸载yum安装的ngjnx

    yum remove nginx -y 

    编译安装nginx步骤

    编译安装nginx的步骤
    1.解决软件依赖
    yum install gcc patch libffi-devel python-devel  zlib-devel bzip2-devel
     openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel
     gdbm-devel db4-devel libpcap-devel xz-devel openssl openssl-devel -y
    
    2.下载nginx的源代码包,这里用的淘宝的tengine
    wget http://tengine.taobao.org/download/tengine-2.3.1.tar.gz
    
    3.解压缩tnginx包
    tar -zxvf tengine-2.3.1.tar.gz
    
    4.进入源码目录,开始编译三部曲
    ./configure --prefix=/opt/tngx231/
    make && make install 
    
    5.可以使用了
    发现缺少sqllite这个一个软件依赖包,就得直接删除编译好的软件,重新编译即可
    
    6.进入安装好的tngx321目录,查看有哪些东西
    conf  存放nginx的配置文件
    html  存放前端文件的
    logs  存放nginx的日志文件
    
    进入sbin 启动nginx
    ./nginx
    
    7.配置path变量,可以快捷使用nginx命令
    vim /etc/profile
    PATH='/opt/python36/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/tngx231/sbin'
    
    8.查看nginx的首页文件 index.html

    二、nginx配置

    nginx的功能性学习,所有的功能都是通过nginx.conf配置文件定义的

    修改配置参数,就实现了不同的功能

    1、使用nginx配置一个站点,进行访问,例如index.html 

    vim /html/index.html

    2、nginx.conf中的配置

    【虚拟主机站点功能】

    server {
            # 监听端口
            listen       85;
            # 域名可以有多个用空格隔开
            server_name  localhost;
            #charset koi8-r;
            #access_log  logs/host.access.log  main;
            #access_log  "pipe:rollback logs/host.access_log interval=1d baknum=7 maxsize=2G"  main;
            #网站的路径匹配,如同django的urls匹配,对用户的访问url进行路径分配
            #当请求url长这样时:
            # 192.168.16.142:85/  就走如下location配置        
            location / {
                #deny  192.168.16.0/24;
                #root参数是定义网页根目录的,可以修改
                root   /opt/html;
                #index 定义网页首页名字的
                index  index.html index.htm;
            }
            #当用户请求url是 192.168.16.142:85/pic/monkeyKing.jpg
            location /pic  {
                #通过alias别名参数,去这个路径下找
                alias   /opt/pic/;
            }
            # 404页面
            error_page  404              /404.html;
            # redirect server error pages to the static page /50x.html
        }

    【日志功能】

    找到nginx.conf中的http{}代码块,然后,找到里面的如下配置

    #日志格式设定
            #$remote_addr与$http_x_forwarded_for用以记录客户端的ip地址;
            #$remote_user:用来记录客户端用户名称;
            #$time_local: 用来记录访问时间与时区;
            #$request: 用来记录请求的url与http协议;
            #$status: 用来记录请求状态;成功是200,
            #$body_bytes_sent :记录发送给客户端文件主体内容大小;
            #$http_referer:用来记录从那个页面链接访问过来的;
            #$http_user_agent:记录客户浏览器的相关信息;
            #通常web服务器放在反向代理的后面,这样就不能获取到客户的IP地址了,通过$remote_add拿到的IP地址是反向代理服务器的iP地址。
         反向代理服务器在转发请求的http头信息中,可以增加x_forwarded_for信息,用以记录原有客户端的IP地址和原来客户端的请求的服务器地址。
    log_format access '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" $http_x_forwarded_for';

    所有的日志信息和错误信息都在logs文件夹下:

    access.log日志信息:

    error.log错误日志:

    nginx.pid当前nginx运行的进程id:

    【禁止访问】

    在nginx.conf中,找到如下参数,修改

    location / {
         #拒绝访问,192.168.16.0网段的同学都无法访问  /24是子网掩码的意思
        deny  192.168.16.0/24;
        root   html;
        index  index.html index.htm;
    }

    【修改虚拟主机的家目录】

    虚拟主机就是nginx.conf中 server{}标签定义的代码
    网站的路径匹配,如同django的urls匹配,对用户的访问url进行路径分配

    #当请求url长这样时:
    # 192.168.16.142:85/  就走如下location配置        
    location / {
                #deny  192.168.16.0/24;
                #root参数是定义网页根目录的,可以修改
                root   /opt/html;
                #index 定义网页首页名字的
                index  index.html index.htm;
            }
    #当用户请求url是 192.168.16.142:85/pic/monkeyKing.jpg
    location /pic  {
            #通过alias别名参数,去这个路径下找
            alias   /opt/pic/;
    }
    
    location /media {
            alias  /opt/media;
    }

    【404页面】

    -nginx的404页面,在nginx.conf中,找到一个error_page 参数
        #当请求错误码是404 时,就返回一个404.html给用户查看,并且这个文件在网页根目录下
        error_page  404              /404.html;

    【虚拟主机功能】

    一个nginx下运行多个网址

    # 找到nginx安装目录下的conf文件夹,找到nginx.conf
    # 通过编写多个server标签实现多虚拟主机
    # nginx.conf配置如下:
        # 虚拟主机1:
        server {
            # 监听的端口
            listen       80;
            #这里进行域名匹配
            server_name  www.s20hanju.tv;
            #这里进行路径匹配
            location / {
                #root定义网页根目录
                root   /opt/s20/hanju;
                #index 定义网站首页文件名
                index  index.html;
            }
        }
        # 虚拟主机2:
        server {
            listen  81;
            server_name www.s20lol.tv;
            location / {
                    root /opt/s20/lol;
                    index index.html;
            }
        }
    
    # 改完nginx.conf的配置,需要重启nginx -s reload
    
    # 分别准备hanju和lol的数据文件夹
    
    # 然后再去windows中准备hosts文件,进行域名解析
    # 文件绝对路径
    # C:WindowsSystem32driversetchosts
    # 内容如下:
        192.168.16.142  www.s20hanju.tv
        192.168.16.142  www.s20lol.tv
    
    # 最后在windows中进行访问,分别访问lol和hanju的网址内容

    域名解析是先从本地的host文件中开始找,如果找不到会去dns找;
    3、nginx的启停命令

    直接输入 nginx  是启动 
    nginx -s stop  停止
    nginx -s reload  平滑加载,不重启nginx,重新读取配置文件,生效  

    4、liunx的压测命令

    1.安装ab命令
    yum -y install httpd-tools 
    2.使用ab压测命令
        -n requests #执行的请求数,即一共发起多少请求。
    
        -c concurrency #请求并发数。
    
        -k #启用HTTP KeepAlive功能,即在一个HTTP会话中执行多个请求。
       # 进行压测命令,统计网站请求数
        ab -kc 1000 -n 100000 http://192.168.16.142/

    5、nginx状态模块

    找到nginx.conf然后再找到一个虚拟主机server标签,添加如下配置即可
    
    location /status {
            #开启nginx状态功能
                 stub_status on;
    }  
  • 相关阅读:
    golang语言特性
    Mysql学习之order by的工作原理
    Mysql聚合函数count(*) 的性能分析
    Mysql的刷脏页问题
    普通索引与唯一索引的选择问题
    Mysql锁的类型与简析
    深入浅出Mysql索引
    Mysql修改语句的运行流程
    Mysql查询语句的运行流程
    Go语言入门之切片的概念
  • 原文地址:https://www.cnblogs.com/songzhixue/p/11117686.html
Copyright © 2020-2023  润新知