Linux yum的配置 , python环境管理, nginx搭建简单学习

Linux yum的配置 , python环境管理, nginx搭建简单学习

一丶配置yum的数据仓库

### yum 工具, 方便,自行解决软件之间的依赖关系. 

# 配置yum源仓库	(可以使用,清华源,阿里源)
	# 1.配置第一个仓库,里面有大量系统常用软件
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    # 2.还得配置第二个仓库,携带大量第三方软件(nginx,redis,mongodb,mairadb等)
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
    
    
# yum仓库的目录
	cd /etc/yum.repos.d # 在这个目录第一层的repo文件就会被识别问yum软件仓库


# 清空yum缓存  ,即清空centos官方的yum软件缓存
   yum clean al
    
# 生成新的阿里云的yum缓存
   yum makecache  
                

二丶centos下安装py3

# 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 -y
        
        
# 2.下载python3的编代码包      
    解压缩  
        wget https://www.python.org/ftp/python/3.6.7/Python-3.6.7.tar.xz
        # 解决 xz锁
        xz -d Python-3.6.7.tar.xz
        # tar包解压缩
        tar -xf Python-3.6.7.tar
# 3.进入解压缩生成的源码文件夹
        cd  Python-3.6.7    
    
    
# 4.执行编译三部曲的命令
    # 第一曲:找到一个[配置的可执行文件,configure],执行它,且指定软件安装位置
        ./configure    --prefix=/opt/python367/   
            
    # 第二曲:在上一步,会生成一个makefile,编译安装,在linux下必须用gcc工具去编译,使用的命令时make
        make 
        
    # 第三曲:这一步是执行安装,会生成一个/opt/python367文件夹,可用的解释器都在这里了
        make install 
        
# 4 .配置环境变量,便于快捷使用python3
    #  1.先获取当前的PATH变量,然后把python3的bin目录加进去
         echo $PATH  
        /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin

    #   2.永久修改PATH的值
            # -第一个是软连接
        	ln  -s  当前软件的可执行文件路径  /usr/local/sbin
            
            # -直接修改/etc/profile ,系统全局的配置文件,每个用户在登陆系统的时候,都会加载这个文件 
        	vim /etc/profile
 			# 写入新的PATH变量      PATH="/opt/python367/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin"
     
        
# 5.还得重新登陆,或者手动读取这个/etc/profile  
           source /etc/profile  #让这个文件中的变量生效    

三丶虚拟环境virtualenv 和 virtualenvwrapper管理工具

### virtualenv虚拟模块使用
# 1.  下载 虚拟环境模块   , virtualenv是一个python模块
	pip3  install -i https://pypi.douban.com/simple  virtualenv  

        
# 2.用命令创建一个虚拟环境 venv_django2
			 # 固定写法		             # 指定python编译器           # 虚拟环境名称
virtualenv  --no-site-packages   --python=/opt/python367/bin/python3.6   venv_django2 
     
    # --no-site-packages   创建的新的venv,不携带任何模块,是个纯洁的python解释器环境
    # --python    指定以哪个解释器为本体,创建新的虚拟环境 
    
    
   
# 3. 激活虚拟环境,系统会将venv的解释器目录,加到PATH的最前面
	# 进入到 venv_django2 下bin目录 source activate
    source activate
    # 注意: 在激活虚拟环境的时候,注意检查下,命令和解释器是否来自于虚拟环境里面
    
# 4. 退出虚拟环境 执行 deactivate
	deactivate 即可退出虚拟环境

# 虚拟环境的意义: 
	同时可运行不同版本, 不同包,模块的python项目. 
###   virtualenvwrapper的使用 ,升级版的虚拟环境工具.

# 1.安装  ,不要激活虚拟环境 
pip3 install -i https://pypi.douban.com/simple    virtualenvwrapper  


# 2.修改配置文件,每次开机就加载 virtualenvwrapper  这个工具

    # 1.打开一个用户个人的环境变量配置文件
    全局配置文件 /etc/profile  #每个用户登陆都生效
    用户个人配置文件 ~/.bash_profile  
    
    vim  ~/.bash_profile #root在登陆的时候,会读取这个文件中的代码 
    
    
    
    # 2.填入如下信息,针对你自己的python环境修改
        export WORKON_HOME=~/Envs   #设置virtualenv的统一管理目录
        export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'   #添加virtualenvwrapper的参数,生成干净隔绝的环境
        export VIRTUALENVWRAPPER_PYTHON=/opt/python367/bin/python3.6      #指定python解释器
        source /opt/python367/bin/virtualenvwrapper.sh #执行virtualenvwrapper安装脚本
  


# 3.此时可以使用这个工具,快捷的创建虚拟环境
    
        mkvirtualenv  虚拟环境名          #创建虚拟环境 
        lsvirtualenv                 #列出虚拟环境的名字 
        workon   虚拟环境名字         #激活或切换虚拟环境  
        lssitepackages               #列出虚拟环境中的模块信息,其实就是 
        cdvirtualenv                 #进入虚拟环境家目录 
        cdsitepackages              #进入虚拟环境第三方模块目录 

# 总结:
	# 工具会在/root下创建一个Envs虚拟环境管理文件夹,同时管理多个虚拟环境,便于虚拟环境之间的切换,解决了虚拟环境模块的问题.

四丶Nginx的学习

 ### Nginx 是一个优秀的web服务器,也是反向代理和负载均衡的服务器
 # 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
    
# 2.下载源代码
	wget  http://tengine.taobao.org/download/tengine-2.3.2.tar.gz
# 3. 解压
	tar -zxvf tengine-2.3.2.tar.gz
# 4.进入源代码目录,指定安装路径,开始编译    
        ./configure --preifx=/opt/tngx232/
        make && make install 
# 5. 配置Nginx的环境变量
	vim /etc/profile  #填入新的PATH
    PATH="/opt/python367/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin:/opt/tngx232/sbin"

# 6.手动读取文件生效
	source /etc/profile  

Nginx的目录

[root@s23_linux tngx232]# pwd
        /opt/tngx232
[root@s23_linux tngx232]# ls
            conf   存放nginx.conf配置文件的
            html    存放静态文件的地方
            logs    存放nginx各种日志的
            sbin    存放nginx可执行命令的地儿
            
            
# yum remove nginx -y 卸载Nginx            

Nginx的常用指令

nginx -s reload  #平滑重启nginx,不重启nginx,重新读取配置文件,立即生效

nginx  -s stop   #停止nginx

nginx    #启动nginx  

nginx  -t   #检测nginx.conf的语法是否正确

部署一个web站点

[root@s23_linux html]# pwd
	/opt/tngx232/html
[root@s23_linux html]# ls
	50x.html  55kai.jpg  duige.html  index.html  test.mp4

修改nginx.conf配置文件

# 都是 以键值对的形式存在  的配置信息
        server {
            #nginx监听的端口 
            listen       85;
            #定义网站的域名
            server_name  localhost;
		   # 设置字符
            #charset koi8-r;
            #nginx的url匹配 , /这个斜杠就代表这样的请求:  192.168.13.117:85/   
            #这个是最低级匹配,所有的请求都会进入location,进行处理
            location / {
                #root参数用于定义网页根目录,可以写绝对或者相对路径
                #root   html;
                root   /opt/s23html;
                #index参数定义网页的首页文件名字     
                index  index.html index.htm;
            }
		   
            # 错误页面
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
        
# 额外: dns客户端配置文件
	vim /etc/resolv.conf
	nameserver 119.29.29.29 #nameserver填写值是 公网的dns服务器   

         8.8.8.8  谷歌的公网dns
         114.114.114.114
         223.5.5.5  
         223.6.6.6  #阿里巴巴的dns服务
         119.29.29.29  #腾讯的dns服务器 

多虚拟主机功能

### 基于域名的多虚拟主机, hosts文件 配置 ,和本地dns解析

#  1.第一步,在nginx.conf中配置俩server{}
	 # netstat -tunple 查看端口
	 # nginx.conf配置文件:
                # 多个域名服务
                    server {
                            #nginx监听的地址 80
                            listen       80;
                            #定义网站的域名,需要到hosts中写死的,假的域名
                            server_name  www.s23lol.com;

                            #charset koi8-r;
                            #nginx的url匹配 , /这个斜杠就代表这样的请求:  192.168.13.117:85/   
                            #这个是最低级匹配,所有的请求都会进入location,进行处理
                            location / {
                                #root参数用于定义网页根目录,可以写绝对或者相对路径
                                #当请求时  www.s23lol.com的时候,就去/opt/s23lol文件夹中寻找资料
                                root   /opt/s23lol;
                                #index参数定义网页的首页文件名字     
                                index  index.html index.htm;
                            }   

                        }  
                        server {
                        listen  80;
                        server_name  www.s23hanju.com;
                        #进行路径匹配,当请求时 www.s23hanju.com:80/斜杠的时候,就进入这个匹配
                        location  /  {
                        #定义网页根目录 
                        root   /opt/s23hanju;
                        index   index.html;
                        }
                        }


# 2 .分别创建/opt/s23lol  和/opt/s23hanju的文件夹,且创建资料
               
     1.2  在windows下修改hosts文件,填入以下内容
               C:\Windows\System32\drivers\etc\hosts 
                    192.168.13.xx  www.s23hanju.com 
                    192.168.13.xx  www.s23lol.com 
	 
	 

### 基于端口的多虚拟主机

server {
                            #nginx监听的地址 80
                            listen       80;
                            #定义网站的域名,需要到hosts中写死的,假的域名
                            server_name  www.s23lol.com;

                            #charset koi8-r;
                            #nginx的url匹配 , /这个斜杠就代表这样的请求:  192.168.13.117:85/   
                            #这个是最低级匹配,所有的请求都会进入location,进行处理
                            location / {
                                #root参数用于定义网页根目录,可以写绝对或者相对路径
                                #当请求时  www.s23lol.com的时候,就去/opt/s23lol文件夹中寻找资料
                                root   /opt/s23lol;
                                #index参数定义网页的首页文件名字     
                                index  index.html index.htm;
                            }   

                        }  
                        server {
                        listen  81;
                        server_name  www.s23meiju.com;
                        #进行路径匹配,当请求时 www.s23hanju.com:80/斜杠的时候,就进入这个匹配
                        location  /  {
                        #定义网页根目录 
                        root   /opt/s23meiju;
                        index   index.html;
                        }
                        }



优化nginx的 404界面

error_page 400 403 404 405 /404.html;


nginx的访问日志功能检测用户的来源ip,访问时间,客户端地址信息

http {
    include       mime.types;
    default_type  application/octet-stream;
    
    #日志格式 
    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;

....
}

posted @ 2019-11-04 17:10  染指未来  阅读(238)  评论(0编辑  收藏  举报