• 安装使用nginx


    nginx的优势
    是c语言开发的一个web框架  官方声称支持10W+的并发
    
    
    
    
    天下武功 唯快不破   tengine+ uwsgi(多进程) + django  
    
    
    你公司的技术栈是什么样?
    
    centos7 +  python3.6  + mariadb  +  redis  +  django +  nginx  +  vue  +   git     便宜,免费
    
    
    
    花钱的老企业,国企,外企
    
    redhat   +  java  +  oracle  +  memcachd  +  tomcat  +  apache +  svn      闭源收费的技术栈
    
    
     
    
    红帽操作系统有问题之后,有专业的红帽资格认证工程师,进行工单处理
    
    认证都是需要花钱   
    rhcsa  红帽系统管理  
    
    rhce  红帽工程师认证    
    
    rhca    红帽的架构师  
    
    
    
    
    redis
    yum install redis 
    
    yum remove redis    卸载redis 
     
    
    使用编译安装redis
    
    
    
    
    nginx安装配置
    1.编译安装nginx软件,此步非常重要,
    1.编译安装nginx软件,此步非常重要,
    1.编译安装nginx软件,此步非常重要,
    1.编译安装nginx软件,此步非常重要,
    1.编译安装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
    
    1.下载源码包
    wget -c https://nginx.org/download/nginx-1.12.0.tar.gz
    
    2.解压缩源码
    tar -zxvf nginx-1.12.0.tar.gz
    
    3.配置,编译安装  开启nginx状态监测功能
    ./configure --prefix=/opt/nginx112/
    
    
    4.启动nginx,进入sbin目录,找到nginx启动命令
    
    cd sbin
    ./nginx #启动
    ./nginx -s stop #关闭
    ./nginx -s reload #平滑重启 ,修改了nginx.conf之后,可以不重启服务,加载新的配置
    
    5.分析nginx的工作目录,内容
    [root@qishione nginx112]# ls
    client_body_temp  conf  fastcgi_temp  html  logs  proxy_temp  sbin  scgi_temp  uwsgi_temp
    
    
    conf   存放nginx的配置文件的
    	nginx.conf 这里是控制nginx所有功能的文件
    html   存放网页html的目录
    	index.html 
    logs   存放log日志文件
    
    sbin    存放nginx可执行命令的
    	nginx脚本命令
    	
    #user  nobody;nginx的工作进程数,以cpu核数为数量
    
    cat  nginx.conf  核心配置如下
    
    #定义nginx工作进程数
    worker_processes  5;
    #错误日志
    
    #error_log  logs/error.log;
    #http定义代码主区域
    http {
        include       mime.types;
        default_type  application/octet-stream;
    	#定义nginx的访问日志功能
    	#nginx会有一个accses.log功能,查看用户访问的记录
    	
        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;
        sendfile        on;
        keepalive_timeout  65;
    	#开启gzip压缩传输
        gzip  on;
    	#虚拟主机1  定义一个 斗鱼网站 
        server {
    		#定义nginx的访问入口端口,访问地址是  192.168.11.37:80
            listen       80;
    		#定义网站的域名www.woshidouyu.tv
    		#如果没有域名,就填写服务器的ip地址  192.168.11.37
            server_name  www.woshidouyu.tv;
    		#nginx的url域名匹配
    		#只要请求来自于www.woshidouyu.tv/111111111
    		#只要请求来自于www.woshidouyu.tv/qweqwewqe
    		#只要请求来自于www.woshidouyu.tv/qweqwewqe
    		#最低级的匹配,只要来自于www.woshidouyu.tv这个域名,都会走到这个location
            location / {
    			#这个root参数,也是关键字,定义网页的根目录
    			#以nginx安装的目录为相对路径  /opt/nginx112/html 
    			#可以自由修改这个root定义的网页根目录
                root   html;
    			#index参数定义网站的首页文件名,默认的文件名
                index  index.html index.htm;
            }
    		#错误页面的优化
            error_page  400 401  402  403  404   /40x.html;
    }
    
    }
    
    
    
    nginx多虚拟主机的配置
    1.在nginx.conf中添加两个虚拟主机标签  server{}
    配置文件如下
        server {
            listen       80;
            server_name  qishijd.com;
            location / {
                root   /opt/jd;
                index  index.html index.htm;
            }
            error_page  404              /40x.html;
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
        }
    server {
    listen 80;
    server_name  qishitb.com;
    location  /  {
    root  /opt/tb;
    index  index.html;
    }
    }
    
    
    
    2.重启nginx,加载新的配置
    nginx -s stop 
    nginx 
    
    
    3.修改windows的本地hosts解析文件,用于域名解析
    
    windows的hosts文件路径
    C:WindowsSystem32driversetc
    
    写入如下配置
    192.168.11.37  qishitb.com
    192.168.11.37  qishijd.com
    
    
    4.准备两个虚拟主机的 index.html文件
    /opt/jd/index.html  写入  我是京东
    /opt/tb/index.html   写入  我是淘宝
    
    
    5.在windows浏览器中,查看两个域名对应到的虚拟主机
    分别访问qishijd.com 域名
    然后访问qishitb.com 域名,查看网站的资料的内容变化
    
    
    
    
    
    nginx的错误页面优化的功能:
    通过error_page参数定义错误页面的 html文件
    
     server {
            listen       80;
            server_name  qishijd.com;
            location / {
                root   /opt/jd;
                index  index.html index.htm;
            }
    		#这个错误页面就应该存放在 /opt/jd/40x.html 
            error_page  404              /40x.html;
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
        }
    
    	
    nginx访问日志功能
    配置方式
    1.修改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;
    
    
    
    
    nginx拒绝访问功能
    在某一个虚拟主机下,顶一个deny参数,可以拒绝ip地址对虚拟主机的访问
    
    server {
            listen       80;
            server_name  qishijd.com;
            #只要192.168.11.37这个ip访问 qishijd.com/
            location / {
                #deny  192.168.11.0/24;
                root   /opt/jd;
                index  index.html index.htm;
            }
            error_page  404              /40x.html;
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
        }
    
    
    	
    nginx代理功能
    
    生活中的代理
    
    1.    代购 
    
    我们花钱,  给 做代理的 这个人 ,,   这个代理 去国外买东西,邮寄给我们
    
    2.  租房
    个体  >   房东  
    个体拿到钥匙 	<  房东给钥匙
    
    
    个体  >   链家,房屋中介   >   链接代理手中,有房东的资源
    
    个体   <   链接   <   房东  
    
    www.luffycity.com/girl.jpg 
    
    nginx只能处理服务器上的静态资源
    css js  html  mp4 
    
    
    动态资源
    与数据库交互,从数据库中取出数据,这个资源
    数据库数据变化的时候,用户是不会感知到的,请求的借口根本没有变化
    
    
    www.luffycity.com/动态数据
    
    
    
    
    发了一个  www.luffycity.com:80,丢给了服务器上的 nginx软件
    
    www.luffycity.com/login  
    
    用户  >  nginx    >    uwsgi(django)
    用户  <  nginx    <   uwsgi(django)
    
    
    
    
    
    nginx的反向代理功能
    1.实验准备,准备2台nginx机器
    机器1  192.168.11.37  用作  web服务器,用作数据返回
    机器2  192.168.11.167   用作nginx反向代理服务器 
    
    
    
    在windows中访问 代理服务器,然后让代理服务器 去拿 web服务器的数据
    
    windows   >   192.168.11.158   >   192.168.11.37
    
    
    windows   <   192.168.11.158   <   192.168.11.37
    
    
    1.准备机器1,只是对数据页面的一个返回
    server {
            listen       80;
            server_name  192.168.11.37;
    
            #charset koi8-r;
            location / {
                root   html;
                index  index.html index.htm;
            }
    
    		}
    
    
    2.准备机器2,用作nginx的反向代理服务器,这个机器不存数据,只转发请求
    配置如下
    server {
            listen       80;
            server_name  192.168.11.158;
    
            #charset koi8-r;
    
            #access_log  logs/host.access.log  main;
    		#在这里进行反向代理配置
    		#192.168.11.158/
            location / {
    	   proxy_pass http://192.168.11.37;
                #root   html;
                #index  index.html index.htm;
            }
    
    }
    
    
    
    
    nginx的负载均衡,顾名思义,
    压力分担
    1.集群是什么
    一堆服务器做一件事
    
    2.集群性能很高
    淘宝本来的核心支付服务器是小型机,非常昂贵,且难以维护
    后来都讲 服务器更换为集群架构
    一堆便宜的服务器,维护者一个功能运转
    
    
    3.高可用
    单点机器很可能宕机
    集群单机机器宕机,不会影响整体的运转
    
    
    nginx负载均衡的配置
    1.实验如下 
    准备三台机器
    机器1   nginx负载均衡器(发牌的荷官)   192.168.11.158   
    	nginx.conf配置如下
    	
    		#定义nginx负载均衡池,里面默认是轮训算法
    		#也可以用weight 权重算法
    		#也可以用ip_hash 算法
    		
    		upstream nginx_pools {
    			server  192.168.11.37  weight=10;
    			server 192.168.11.167  ;
    		}
    		server {
    			listen       80;
    			server_name  192.168.11.158;
    
    			#charset koi8-r;
    
    			#access_log  logs/host.access.log  main;
    			#在这里进行反向代理配置
    			#192.168.11.158/
    			location / {
    			proxy_pass http://nginx_pools;
    		}
    		}
    
    
    
    
    机器2   准备nginx  返回页面数据        192.168.11.37    
    	nginx.conf配置如下
    		    server {
    				listen       80;
    				server_name  192.168.11.37;
    				location / {
    					root   /opt/jd;
    					index  index.html index.htm;
    				}
    				error_page  404              /40x.html;
    				error_page   500 502 503 504  /50x.html;
    				location = /50x.html {
    					root   html;
    				}
        }
    
    		
    
    
    
    
    机器3   也准备nginx  返回页面数据      192.168.11.167
     server {
            listen       80;
            server_name  192.168.11.167;
    
            #charset koi8-r;
    
            #access_log  logs/host.access.log  main;
    
            location / {
                root   html;
                index  index.html index.htm;
            }
    
    
    2.分别启动三台机器,三个nginx服务
    
    3.在windows中访问负载均衡器的地址,查看请求分发,
    访问  192.168.11.158
    
    
    
    
    
    今日作业:
    1.完成nginx的编译安装
    2.完成nginx的多虚拟主机 
    	提供qishijd.com 
    	qishitb.com  
    	访问到不同的页面
    
    3.完成nginx的  404错误页面 
    
    4.完成nginx的负载均衡配置 (项目部署就是通过 nginx转发请求给uwsgi的)
    
    
    
    
    
    linux屏保安装
    1.下载屏保软件源码包
    wget https://jaist.dl.sourceforge.net/project/cmatrix/cmatrix/1.2a/cmatrix-1.2a.tar.gz
    2.解压缩源码包
    tar -zxvf cmatrix-1.2a.tar.gz
    3.进入源码包目录
    cd cmatrix-1.2a/
    4.释放编译文件
     ./configure --prefix=/opt/cmatrix/
     5.编译且安装
     make && make install 
     6.进入安装屏保软件的目录
     cd /opt/cmatrix/
     7.执行屏保命令
     ./bin/cmatrix
    
  • 相关阅读:
    Java并发编程笔记——技术点汇总
    Hello Blog
    shell变量
    认识bash这个shell
    使用myeclipse创建带注解的model实体类
    python List,切片的用法
    ignite从0到1的学习过程记录-第一篇:安装和体验
    安卓Service完全解析(中)
    安卓Service完全解析(上)
    JAVA之数组
  • 原文地址:https://www.cnblogs.com/Kingfan1993/p/10271732.html
Copyright © 2020-2023  润新知