当前位置: 移动技术网 > IT编程>脚本编程>Python > linux--nginx学习

linux--nginx学习

2019年12月26日  | 移动技术网IT编程  | 我要评论

武国举,沪北电影院,天天伴游

nginx

1.nginx安装编译

1.yum install nginx(自动解决依赖) 
2.源代码编译安装(优秀,自由选择软件版本,自定义第三方功能比如开启https)
3.rpm手动安装(垃圾)

2.下载tengine

最好别再root在操作,在opt在执行该条命令
wget http://tengine.taobao.org/download/tengine-2.3.2.tar.gz

3.解压缩

ls查看下载后的文件
解压缩:tar -zxvf tengine-2.3.2.tar.gz 
进入解压缩后的文件:cd tengine(解压缩后的)

4.编译

4.1指定安装路径

./configure --prefix=/opt/tbnginx/     /opt/tbnginx/ 为安装路径

4.2开始编译

make命令  生成makefile

4.3开始安装

make install  

5.配置环境变量

进入到 tengine下的sbin目录
需要把path写入/etc/profile #每次开机都加载 
    vim /etc/profile

把path写入到环境变量中:                     path="/opt/python367/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/tbnginx/sbin"

手动读取,让path生效
    source /etc/profile

6.启动nginx,检查进程,端口

检查进程:ps aux | grep nginx
检查端口:netstat -tunlp | grep 80
直接输入nginx命令,第一次是启动nginx
nginx -s stop  #停止
nginx -s reload  #平滑重启,不停止进程,重新读取配置文件 
nginx  -t  #检测nginx.conf语法是否正确,更安全


在浏览器中输入ip:端口访问

7.nginx的配置文件

[root@bogon tbnginx]# ls
    conf    存放nginx的配置文件
    html    存放nginx静态文件的
    logs    nginx的运行日志,错误日志,访问日志
    sbin    存放可执行命令 

nginx的静态文件服务功能

nginx.conf 中定义的server{}虚拟主机关键词定义

1.
    [root@bogon tbnginx]# cd tbnginx/
    [root@bogon tbnginx]# cd html/
2.
     [root@bogon html]# ls
        50x.html  
     执行 vim   #进入该问文件的编辑模式    
        

server{}定义虚拟主机功能

server {
        #定义网站的端口
        listen       81;
        #定义网站匹配的域名 
        server_name  localhost;
        #server_name  _;
        #server_name  www.mypython.com;
    #定义虚拟主机的访问日志功能,记录用户的ip,以及请求信息,和爬虫代理后面的真实ip等功能
    #access_log  logs/host.access.log  main;
    #access_log  "pipe:rollback logs/host.access_log interval=1d baknum=7 maxsize=2g"  main;
    # location作用是匹配url,如同 django的 url.py功能一样
    # 最低级匹配,当请求时 192.168.16.85:81/ 就进入如下location
    location / {
       #这个root关键词 是定义静态文件存放目录的
        root   /opt/xx.html;
    #index参数,定义网站首页文件名的 
        index   index.htm;
    }
    #  这个location可以定义多个,比如 你想让 192.168.16.85:81/static/js/luffy.js
    location  /static  {
    #给路径添加别名 
    alias   /opt/crm/static/;}

nginx的多虚拟主机功能

一台服务器,基于域名的不同,访问不同的网站资料
也就是准备2个server{}的定义

本地的hosts文件
c:\windows\system32\drivers\etc\hosts

第一个server{ } 虚拟主机 ,www.pian.com

server {
                #定义网站的端口
                listen       80;
                #定义网站匹配的域名 
                server_name  www.pian.com;
                #server_name  _;
                #server_name  www.mypython.com;

                #定义虚拟主机的访问日志功能,记录用户的ip,以及请求信息,和爬虫代理后面的真实ip等功能
                #access_log  logs/host.access.log  main;
                #access_log  "pipe:rollback logs/host.access_log interval=1d baknum=7 maxsize=2g"  main;
                # location作用是匹配url,如同 django的 url.py功能一样
                # 最低级匹配,当请求时 192.168.16.85:81/ 就进入如下location
                location / {
                   #这个root关键词 是定义静态文件存放目录的
                    root   /opt/pian;
                #index参数,定义网站首页文件名的 
                    index   index.htm;
                }
                #当你的请求时 www.pian.com/static/55kai.jpg  
                location  /static  {
                #给路径添加别名 
                alias   /opt/crm/static/;
                        #http://www.pian.com/static/360wallpaper.jpg
        }
    
    }

第二个虚拟主机 www.xxlol.com

server {
    listen  80;
    server_name  www.xxlol.com;
    location  / {
    root  /opt/xxlol;
    index   ;
    }

}

nginx的访问日志功能

打开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;
    
    
进入到cd tbnginx/logs
实时监测 :tail -f access.log
当再次访问的时候logs就会多一条 记录

nginx 404错误页面优化

        location / {
           #这个root关键词 是定义静态文件存放目录的
            root   /opt/pian;
        #index参数,定义网站首页文件名的 
            index   index.htm;
        }

            error_page  404              /404.html;
        
        对/404.html进行编辑或添加新的内容
        keepalive_timeout : 60

nginx配置反向代理

需要准备3台机器
1是客户端,发请求的
2是代理服务器,需要安装nginx,实现代理转发功能
3是资源服务器,提供数据的 

正确的操作应该是
准备一个windows机器,两个linux机器(一个是安装nginx用作代理,一个启动django提供数据)
我考虑到大家机器不行
解决办法

在一台linux上,启动一个nginx,第一个server{}虚拟主机标签,作用是反向代理

第二个server{}虚拟主机标签,模拟是另一台linux,提供数据的 


浏览器  ->  nginx  ->  django
浏览器  <-  nginx  <-  django

配置反向代理

server {
    listen       80;
    server_name  _;
    location / {
    #反向代理的参数 
    proxy_pass   http://127.0.0.1:81;
    }
    error_page  404              /404.html;
}

nginx负载均衡

环境准备
准备四台机器
第一台是window,用于浏览器法请求

第二台个是nginx,安装nginx,进行请求分发,负载均衡 

第三台,讲道理,应该运行django

第四台,一样的,也是运行django代码

在一个linux机器上,安装一个nginx软件,通过多个server{}模拟多台机器的工作

nginx的环境准备,nginx.conf配置文件

#通过upstream关键词,定义服务器地址池
upstream  server  {
server  127.0.0.1:81;
server  127.0.0.1:82;
server  127.0.0.1:83;
}

   #定义第一个虚拟主机 server{} ,功能是 进行反向代理,负载均衡 
   server {
        listen 80;
        server_name _;
        location  /  {
        proxy_pass http://myserver;
}

}
#第二个server,模拟第一台django
server  {
listen  81;
server_name _;
location  /  {
    root  /opt/django1;
    index  ;
}
}
#定义第三个server,模拟第二台django
server {
  listen 82;
server_name  _;
location  / {
  root  /opt/django2;
  index  ;
}
}

#定义第四个server,模拟第三台django,讲道理,这三台django应该提供一样的数据 
server {
  listen 83;
server_name  _;
location  / {
  root  /opt/django3;
  index  ;
}
}

nginx的负载均衡规则

1.轮训机制 ,每个机器,解析一次
2.权重机制 ,哪台机器的权重高,请求优先发给谁,有权重比例设置
        upstream  myserver  {
    server  127.0.0.1:81 weight=1;  # weight权重 安比例分配
    #server  127.0.0.1:82 weight=3;
    server  127.0.0.1:83 weight=4;
    }

3.ip_hash  ,真对用户的ip地址得到哈希值,永久发给一台机器 ,ip哈希方式,不得和权重一起用 
    #通过upstream关键词,定义服务器地址池
    upstream  myserver  {
    server  127.0.0.1:81 ;
    #server  127.0.0.1:82 ;
    server  127.0.0.1:83 ;
    ip_hash;
    }

4.url_hash  ,不用 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网