nginx学习

Posted q455674496

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx学习相关的知识,希望对你有一定的参考价值。

 

1,检测linux上是否 通过yum安装了nginx

rpm -qi nginx

 

2.安装nginx之前的依赖包

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

 


 

3.源代码编译安装tenginx

1.下载淘宝nginx的源代码包
    wget http://tengine.taobao.org/download/tengine-2.3.0.tar.gz
    
2.解压缩源代码
    tar -zxvf tengine-2.3.0.tar.gz
        
3.切换进入nginx源代码目录 进行编译安装
    cd  tengine-2.3.0
    
4.释放编译文件,指定安装路径
    ./configure --prefix=/opt/s18tngx/

5.开始编译且安装
    make && make install 
        
6.卸载之前通过yum安装的nginx  
    yum remove nginx -y 
    
    
7. 查看nginx的安装目录,有哪些东西

    [[email protected] s18tngx]# ls
    conf 存放nginx的配置文件目录的
    html 存放前端文件的地儿
    logs 存放nginx日志文件的目录
    sbin 存放nginx的可执行命令

  

  8.配置nginx的环境变量,支持快捷启动
    vim /etc/profile
    写入到PATH

  9.启动nginx
    直接输入nginx命令

  10.修改nginx的首页文件
    存放在nginx安装目录下的html文件夹中,名为index.html的文件

  vim index.html
    写入你想要的数据


4.nginx的配置文件(片段)

[[email protected] conf]# grep -v "^#" nginx.conf|grep -v "^$"

worker_processes  1;  #全局变量,工作进程数 
events {
    epoll;
    worker_connections  65536;  #根据linux的文件描述符来修改 
}

#http代表nginx核心功能块 
http {
    include       mime.types;
    default_type  application/octet-stream;
   
    
    gzip  on; #开启压缩图片功能
    #代表nginx的虚拟主机功能 
    #当我们访问192.168.226.128:80/就进入这个虚拟主机的配置 
    #第一个虚拟主机,。dnf网址
    server {
        #nginx监听的端口
        listen       80;
        #填写服务器的域名,没有域名就写ip地址即可
        
        server_name  192.168.226.128;
        #路径资源匹配 ,匹配 /  目录 
        #192.168.226.128:80/
        #这是最低级匹配,所有的请求,都会进入这个location
        location / {
            #root参数指的是定义一个虚拟主机根目录
            root   html;
            #index参数指定首页文件的名字 
            index  index.html index.htm;
        }   
        #第二个虚拟主机 韩剧网址
    server  {
        listen 80;
        server_name  192.168.226.128;
        location  /  {
            root   /opt/s18hanju/; # 在opt下创建s18hanju文件夹,在s18hanju中创建index.html
            index index.html;
        }
    }

}

nginx多虚拟主机有俩概念
1.如果没有域名,写ip地址的话,虚拟主机是自上而下的加载顺序 ,
2.如果有域名,nginx会基于域名区分虚拟主机


 

配置完成后,重新加载nginx, 平滑重启

nginx -s reload 

学习nginx的状态模块功能

1.修改nginx.conf的配置文件
        找到一个server虚拟主机,写入如下配置
        
                location /status  {
        stub_status on;
}    
2.重启nginx,加载这个status状态模块功能
    
3.通过ab压测命令,去给网站发起n多个请求
    安装ab压测命令工具
        yum -y install httpd-tools
    
4.给服务器nginx,发起一万个请求
    ab -kc 1000 -n 10000 http://192.168.226.128/

nginx的access.log访问日志功能

编辑nginx.conf打开如下配置参数
    打开如下注释
    log_format  main  $remote_addr - $remote_user [$time_local] "$request" 
                      $status $body_bytes_sent "$http_referer" 
                      "$http_user_agent" "$http_x_forwarded_for";

    access_log  logs/access.log  main;
    access_log  "pipe:rollback logs/access_log interval=1d baknum=7 maxsize=2G"  main;
    
    重启nginx查看logs下的日志文件,检测用户请求信息
    
    tail -f  logs/access.log 

 

nginx限制ip访问功能

找到nginx.conf修改如下代码
        location / {
            #禁止192.168.226.0/24 这个地址段所有的ip访问 
            deny  192.168.226.1 ; 
            root   /opt/s18dnf;
            index  index.html index.htm;
        }

 

实现nginx的反向代理功能

一个是真实资源文件        192.168.226.128      就理解为房东 ,提供dnf的资源界面

一个是反向代理服务器    192.168.226.129   理解为中介,当我们访问中介,就访问到dnf的网站资源

    1.分别在2台机器,安装nginx  
    
    2.资源服务器已经配置好,返回dnf页面
    
    3.反向代理服务器配置如下
    
    vim编辑nginx.conf  找到第一个server虚拟主机
    修改配置如下
           location / {
                proxy_pass  http://192.168.226.128;
        }

    4.重启nginx,查看反向代理效果

 


 

以上是关于nginx学习的主要内容,如果未能解决你的问题,请参考以下文章

nginx.conf 忽略了 nginx-ingress 配置映射片段

将 nginx rtmp 片段发送到 WebRTC

IOS开发-OC学习-常用功能代码片段整理

java SpringRetry学习的代码片段

python 机器学习有用的代码片段

text 有用的nginx命令和片段