码迷,mamicode.com
首页 > 其他好文 > 详细

个人笔记--->服务器篇

时间:2018-02-10 11:24:45      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:web应用   加密功能   welcome   tomcat   cer   基本   dir   sub   factory   

day 01

环境:
    PC:        eth0:192.168.4.100
    代理:    eth0:192.168.4.5
            eth1:192.168.2.5
    web:    eth1:192.168.2.100

--------------------------------------------------

·squid反向代理
squid服务器
    软件包:squid-3.3.8-26.el.x86_64.rpm
    系统服务:squid
    主程序:/usr/sbin/squid
    主配置文件: /etc/squid/squid.conf
    默认监听端口:TCP 3128
    默认访问日志:/var/log/squid/access.log
日志文件:
    代理:
      # tailf /var/log/squid/access.log
    web1:
      # tailf /var/log/httpd/access_log
    代理缓存文件;
      # cd /var/spool/squid/00/00
      # ls

--------------------

构建squid反向代理

一、
    ·搭建web服务器        
    ·编写网页内容

二、                    
    ·部署squid代理服务器    
      - 装包 squid
      - 修改配置  /etc/squid/squid.conf
        ... ...
        http_port 80 vhost
        visible_hostname www.qwe.com
        cache_peer 192.168.2.100 parent 80 0 originserver
        cache_dir ufs /var/spool/squid 200 16 256
        http_access allow all
    
    ·重启squid服务
    
三、
    ·客户端验证


------------------------------------------------------

varnish服务器
高性能、开元反向代理器、 http加速器

查看varnish日志
# varnishlog        //varnish日志
# varnishncsa    //访问日志

---------------------

部署varnish缓存服务器

一、
    ·部署web

二、

    ·安装软件依赖包
    gcc、readline-devel、pcre-devel  
    ·创建账户
    ·编译安装源码包
        ./configure --prefix=/usr/local/varnish

    ·复制启动脚本和配置文件
      # cp redhat/varnish.initrc /etc/init.d/varnish
      # cp redhat/varnish.sysconfig /etc/sysconfig/varnish
      # ln -s /usr/local/varnish/sbin/varnishd /usr/sbin/
      # ln -s /usr/local/varnish/bin/* /usr/bin/
      # cp redhat/varnish_reload_vcl  /usr/bin/

    ·复制代理配置文件
      # mkdir /etc/varnish
      # cp /usr/local/varnish/etc/varnish/default.vcl  /etc/varnish/

      # uuidgen > /etc/varnish/secret


三、
    ·修改配置文件/etc/sysconfig/varnish
        ... ...
        VARNISH_LISTEN_PORT=80
        VARNISH_STORAGE_SIZE=64M
        VARNISH_STORAGE="malloc,${VARNISH_STORAGE_SIZE}"
    
    ·修改代理配置文件/etc/varnish/default.vcl
        backend default {
            .host = "192.168.2.100";
            .port = "80";    
        }


四、
    ·关掉所有80端口的服务
    ·启动varnish服务
      # /etc/init.d/varnish start
    杀死varnish进程
    # killall -9 varnishd


五、
    ·客户端验证

----------------------------------------------------------------------------------------

处理缓存过期

>>代理
# varnishadm -S /etc/varnish/secret -T 127.0.0.1:6082    
    //交互
    >ban.url c.html

# varnishadm -S /etc/varnish/secret -T 127.0.0.1:6082 ban.url c.html
    //非交互
    //作用效果相同


==================================================

day 02


环境:
    PC:192.168.4.100
    代理:192.168.4.5

nginx:轻量级的Web服务器,反向代理服务器
    //占有内存少,并发能力强

排错日志
# tailf /usr/local/nginx/logs/error.log
# tailf /usr/local/nginx/logs/access.log

---------------------------------------------

构建nginx服务器

一、
    ·yum安装常见依赖包
    # yum -y install gcc、 pcre-devel、 openssl-devel
    ·编译安装源码包
       > tar
       > ./configure
       > make
       > make install
    ·启服务

二、
    ·客户端验证
    //可以访问到 welcome to nginx 页面

--------------------------------------------

升级nginx

详细步骤:
一、
    ·编译新版本nginx软件
# tar -xf nginx-1.9.0.tar.gz
# cd nginx-1.9.0
# ./configure   \
> --prefix=/usr/local/nginx   \     //选择安装路径
> --user=nginx   \                 //用户
> --group=nginx  \                 //组
> --with-http_ssl_module            //开启ssl加密功能
# make   

二、    
    复制启动脚本
# mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginxold        //覆盖nginx老版本
# cp objs/nginx  /usr/local/nginx/sbin/    //拷贝新版本
# make upgrade                            //升级

------------------------------------------------

nginx用户认证

一、
    ·编译安装源码包
        - 安装--with-http_ssl_module模块
    ·修改nginx配置文件 /usr/local/nginx/conf/nginx.conf    
        auth_basic "Input Password:";        
        auth_basic_user_file "/usr/local/nginx/pass";
        //server中添加认证提示符和认证密码文件

二、
    ·生成加密的密码文件
    # yum 安装httpd-tools
    ·创建用户设置密码
    # htpasswd -c /usr/local/nginx/pass  用户名
    //密码文件路径要和配置文件里写的路径一样
    ·重启服务
    
三、
    ·客户端验证
    //输入密码后可以访问

-----------------------------------------------------


修改配置文件,配置基于域名、IP、端口的虚拟主机

    ·修改配置文件
    # vim /usr/local/nginx/conf/nginx.conf
 ... ...
 server {
    listen       80;                    #端口
    server_name  www.aa.com;            #域名
    root html;
    }

 server {
    listen         192.168.4.5:80;    #基于IP (默认所有(*:80))
    server_name    www.bb.com;    
    root www;
}
    
    ·创建www目录写入页面内容

    ·客户端验证
        # vim /etc/hosts

------------------------------------------------------

SSL虚拟主机

一、
    ·构建nginx服务器

二、
    ·修改配置文件,设置需要加密网站的虚拟主机
    ... ...
    server {
        listen    443 ssl;
        server_name    www.xx.com
        ssl_certificate      cert.pem;    //配置公钥
         ssl_certificate_key  cert.key;    //配置私钥
    }
    ... ...
        //配置文件中有模板

    ·生成私钥与证书(公钥)
    //公私钥要生成在/usr/local/nginx/conf/下
    生成命令:
    # openssl genrsa -out cert.key
    # openssl req -new -x509 -key cert.key -out cert.pem
    //公私钥名称自定义,但要与配置文件一致。

    ·重启服务

三、
    ·客户端验证
        #vim /etc/hosts
      # firefox https://www.xx.com
        //添加信任后可以访问
    

-------------------------------------------

                          --->   web1
client --> proxy--负载均衡    |
                健康检查    |
                          --->   web2


nginx反向代理(调度器)
配置Nginx服务器,添加服务器池,实现反向代理功能
//upstream * {


一、
    ·构建nginx服务器     

二、
    ·编写配置文件 /usr/local/nginx/conf/nginx.conf
    >>定义集群
        //ip_hash        #相同客户端访问相同服务器
        //weight:权重   不加参数默认平均(默认是1) (权重越高,访问次数越多)
        //max_fails:动态监测失败次数
        //fail_timeout:超时时间,失败后x秒内不访问该主机
    >>server里调用集群

------
简单的模板
... ...
  upstream aa {            //定义集群
        server 192.168.2.100;
        server 192.168.2.200;
    }
    server {
      listen            80;
      server_name    www.abc.com;

      location  / {
        proxy_pass http://aa;        //调用集群
    }
  }

------


三、
    ·客户端验证
        //反复访问两个web服务器
        //页面出现顺序、次数与集群内的参数有关


==========================================================

day 03

LNMP
    Linux系统下Nginx+MySQL+PHP/Python(网站开发语言)的网站服务架构,主流的企业网站平台之一


--------------------------------------------

部署LNMP环境


一、
    ·yum安装常见依赖包
      gcc、openssl-devel、pcre-devel
    
    ·安装nginx

    ·yum安装mariadb
      mariadb   mariadb-server   mariadb-devel

    ·安装php、 php-fpm
     //php-fpm是rpm包,要cd到lnmp_soft下yum安装
    
    ·安装php-mysql
    
二、
    ·启动服务
    # nginx        //端口:80
    # systemctl start mariadb        //端口:3306
    # systemctl start php-fpm        //端口:9000
    
    ·检验端口是否正常启动

--------------------------------------------


动静分离: Nginx+PHP
    用户发送请求到nginx :80
    nginx判断用户访问的是静态还是动态
    如果是静态,则在root对应的目录中找到页面,直接给用户
    如果是动态,则nginx将请求转发给9000端口,处理后发送给用户

-------------------------------------------

构建LNMP平台
实现动静分离

一、
    ·编写nginx配置文件  nginx.conf
    基本格式:
    server {
      listen            80 ;
       server_name  ... ;
    location / {            //静态
        root html;
    }
    location ~ \.php$ {    //动态
        root html;
        fastcgi_pass 127.0.0.1:9000;
        //nginx无法解析php页面,转发给9000端口
        include    fastcgi.conf;
        //配置文件中有模板
    }
二、
    ·编写测试页面
    # vim /usr/local/nginx/html/test.php    
    <?php
    $i="This is a test Page";
    echo $i;
    ?>

三、
    ·重启nginx服务

    ·firefox访问


---------------------------------------------

地址重写
格式:
    rewrite 旧 新  [选项];
     //可选项 :
       last : 触发后不再读其他rewrite
       break    : 不再读其他语句,直接结束访问
       redirect : 临时
       permament : 永久

在location栏最后添加
    rewrite /a.html  /b.html;
       //当用户访问/a.html,自动为用户跳转到/b.html
      

在location前添加
    rewrite  ^/  http://www.tmooc.cn/;
       //当用户访问192.168.4.5,自动为用户跳转到www.tmooc.cn

    rewrite ^/(.*) http://www.tmooc.cn/$1;
       //当用户访问192.168.4.5/下面子页面,自动为用户跳转到www.tmooc.cn/下相同的页面

    
根据不同的浏览器。访问相同页面结果不同
//根据nginx配置文件中的内置变量判断用户使用的浏览器$http_user_agent

一、
    ·准备两套页面 /usr/local/nginx/html/
        test.html
        curl/test.html
    ·修改配置文件
       if ($http_user_agent ~* curl) {     //识别客户端curl浏览器
       rewrite ^(.*)$ /curl/$1 break;
       }



===========================================
day 04

优化nginx服务器
 #vim /usr/local/nginx/conf/nginx.conf

---    
    ·隐藏版本号    
        http {
            server_tokens off;
        }
       验证:# curl -I http://192.168.4.5/
    //访问结果版本号不显示

---

    ·实现高并发
        worker_processes 1;    //与CPU核心数量一致
                            //工作进程数  
        events {
           worker_connections  65535;    
            //每个worker最大并发连接数
          }

        //ulimit主要是用来限制进程对资源的使用情况的,它支持各种类型的限制
        # ulimit -Hn 100000  硬限制hard
        # ulimit -Sn 100000  软限制soft
        -a 查看

       验证:# ab -c 2000 -n 2000 http://127.0.0.1/

---

    ·包头信息缓存
       - 包头信息过长会报414错误

         client_header_buffer_size 1k;
        //默认请求包头信息的缓存

        large_client_header_buffers 4 4m;
        //大请求头部信息的缓存个数  和 容量

        tcp_nodelay on;
        //关闭TCP缓延迟发送数据

        keepalice_timeout 10;
        //保持连接的超时时间

           //先根据client_header_buffers分配,如果不够,再根据large值分配
    ... ...

---
    ·自定义错误页面
        error_page    404    /40x.html;        //自定义错误页面
        location = /40x.html {
            root    html;
        }
        # vim /usr/local/nginx/html/40x.html
        <h1>~~~~^^^Error^^^~~~</h1>

      测试:firefox http://192.168.4.5/xx.html    
    
      //注意是本地的错误页面,不要和调度做在一起

---

-----------------------------------------------

Tomcat



安装部署Tomcat服务器
  tomcat 默认端口:8080

一、
     ·安装部署JDK基础环境
       yun装包:java-1.8.0-openjdk、java-1.8.0-openjdk-headless

二、
     ·安装部署Tomcat服务器
       # tar -xf apache-tomcat-8.0.30.tar.gz
       # mv到/usr/local/tomcat

三、
    ·启动服务
       # /usr/local/tomcat/bin/startup.sh    //开启服务
       # /usr/local/tomcat/bin/shoudown.sh    //关闭服务
    端口:8080
    :8009
    :8005


四、
    ·测试
      # firefox http://192.168.2.100:8080
      //Tomcat主页


     ·创建JSP测试页面并访问
       //页面根路径/usr/local/tomcat/webapps/ROOT/test.jsp

页面内容
---
<html>
<body bgcolor="red">                //指定网页背景颜色
<center>
<%String s = session.getId();%>    //获取SessionID
<%=s%>
<h1>tomcatA/B</h1>                //固定字串信息
</center>
</body>
</html>
---


=============================================


day 05
------
memcached缓存服务器
软件包:memcached-1.4.15-9.el7.x86_64
服务名:memcached
TCP/UDP:11211
-memcached 是高性能的分布式缓存服务器
-用来集中缓存数据库查询结果。减少数据库访问次数,以提高动态web应用的响应速度

------
构建memcached服务

一、
    ·装包
      # yum -y install memcached
    ·启服务
    
二、
  使用telnet访问memcached服务器
    ·yum安装telnet
    
    ·telnet连接服务器测试增、删、改、查。
      # telnet 192.168.4.5 11211
    增    > add myname 0 180 3        //新建,存在则报错
        > append myname 0 180 3    //向变量结尾追加数据
    改    > replace myname 0 180 3    //替换,不存在则报错
        > set name 0 180 3        //添加或替换变量
        //name:变量名
        //0:不压缩
        //180:name变量的缓存时间
        //3:变量占用3字节空间
    查    > get name        //读取变量
        > stats                //查看状态
    删    > delete myname        //删除变量
        >flush_all            //清空所有缓存

----------------------------------------------------------

LNMP+memcached

一、
    ·部署LNMP环境
      - 安装依赖包
        gcc、openssl-devel、pcre-devel、zlib-devel
      - 源码安装nginx
      - 安装mariadb
        mariadb、mariadb-server、mariadb-devel
      - 安装php
        php、php-mysql
        php-fpm-5.4.16-36.el7_1.x86_64.rpm
        php-pecl-memcache  //memcache扩展
        
二、
    ·修改nginx配置文件
       # vim /usr/local/nginx/conf/nginx.conf
        location  ~  \.php$  {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
          # fastcgi_param   SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi.conf;
              }


三、
    ·启服务
      nginx        :80
      mariadb    :3309
      php-fpm    :9000

四、
    ·编写测试页面
     /usr/local/nginx/html/index.php
        <?php
        echo 11
        echo 22
        ?>

五、
    ·访问测试
    
--------------------------------------------------------

Session共享
  - 存储在服务器端,保存用户名、密码等信息

Cookies
 -由服务器下发给客户端,保存在客户端的一个文件里。
 保存的内容主要包括:SessionID、账户名,过期时间,路径和域



使用tomcat设置session

搭建session环境

一、    2.100/2.200
    ·部署两台Tomcat服务器
        - 安装jdk环境
        - 安装tomcat软件
        - 启服务


二、4.5
    ·部署nginx调度器
        - 源码安装nginx
        - 修改nginx配置文件
        通过upstream定义两台tomcat服务器地址池
        默认调度为轮询
        proxy_pass调用地址池
        - 启服务


三、
    ·创建jsp测试页面
      # vim /usr/local/tomcat/webapps/ROOT/test.jsp
        //Ctrl+f > 页面内容

四、    4.100
    ·客户端测试
      # firefox http://192.168.4.5/test.jsp
        //刷新出现的网页内容A/B轮询

--------------------------------------------------------

Tomcat实现session会话共享

一、
    ·构建memcached服务
      - 装包
      - 启服务        :11211

二、
    ·在Tomcat服务器上部署msm
        - 安装msm
          # cd lnmp-soft/session
          # cp *.jar /usr/local/tomcat/lib/
        - 修改配置文件,连接memcached服务器
          # vim /usr/local/tomcat/conf/context.xml
<Context>    
    <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
    memcachedNodes="mem1:192.168.2.5:11211"
    requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
    transcoderFactoryClass="de.javakaffee.web.msm.JavaSerializationTranscoderFactory"/>
</Context>
    //配置文件内没有模板,复制粘贴到<Context>中

    ·重启服务

三、
    ·客户端访问
      # firefox http://192.168.4.5/test.jsp



==========================================


day 06

Redis
------
源码安装redis服务器
一、
    ·解包
    ·安装依赖包gcc    
    ·# make && make install

二、
    ·初始化设置
      #./utils/install_server.sh

三、
    ·服务管理
      # /etc/init.d/redis_6379    //启动脚本
      # service redis_6379 status   //查看状态
      # service redis_6379 stop
      # service redis_6379 start

四、
    ·使用客户端软件快速测试服务器
      # redis-cli
        >ping
       PONG
    ... ...


---------------------------------------------

配置Redis主从服务器

一、
    ·主、从服务器安装Redis
    
二、
    ·配置主服务器设置
      -修改主服务器配置文件
        /etc/redis/6379.conf
      requirepass 123456        //配置密码

      -重启服务

      -修改启动脚本
       /etc/init.d/redis_6379
      $CLIEXEC -a redis123  -p $REDISPORT shutdown


    ·配置从服务器设置
      -修改从服务器配置文件
       /etc/redis/6379.cong
      slaveof 192.168.2.100 6379   //指定主服务器IP和端口
      masterauth 123456        //写入主服务器的密码

      -重启服务

三、
    验证效果
      # redis-cli -h 192.168.4.100 -a redis123        //登录主服务器设置数据
        > set test 123
        OK

      # redis-cli –h 192.168.4.200    //登录主服务器查看数据同步效果
        > get test
        "123"


-----------------------------------

数据库操作指令

格式:
 
    > set a '内容'        //设置变量名
    > get a                //查看变量
    > setrange a 位置 '内容'    //替换
    > ser a '内容' ex 5    //变量的过期时间为5秒
     //字符串过期后查看该值为空
    > append a 'xxx'        //向变量中追加


  其他操作
·keys 匹配
 - 找符合匹配条件的key,特殊符号用\屏蔽
> keys *
//匹配所有,查看数据库下所有数据

·flushall
 - 清空所有数据

·select id
 - 选择数据库,id用数字指定,默认数据库为0



=========================================


day 07

svn
搭建svn服务器思路:
一、
    ·yum装包 subversion
    ·创建项目目录
      # mkdir /var/svn
      # svnadmin create /var/svn/booo

二、
    ·修改配置文件
    /var/svn/booo/conf/*

三、
    ·导入初始化数据
      在需要导入的文件目录下
      # svn import . file:///var/svn/booo/ -m "备注信息"
        //提交后的版本为 1

四、
    ·启动服务共享仓库
      # systemctl restall svnserve //共享所有仓库
      # svnserve -d -r /var/svn/booo //共享单个仓库

五、
    ·本地验证
      //下载svn的共享文件到当前目录
      # svn co --username tom --password tom123 svn://127.0.0.1 tom
        //取出版本 1
    
    #svn其它操作见PPT



-----------------------------------------------
制作RPM包

一、
    ·装包 rpm-build

二、
    ·准备工作
      -生成rpmbuild目录结构
      # rpmbuild -ba 00.spec
        //root家目录下会生成rpmbuild目录
      -将源码包复制到SOURCES目录下
      -修改SPEC的配置文件
      # vim SPECS/nginx.spec
        //新建.spec文件,里面会有模板
      -安装依赖包
        gcc、pcre-devel、zlib-devel、openssl-devel
        
三、
    ·创建RPM包
      # rpmbuild -ba SPECS/nginx.spec
        //退出状态为0表示正常

四、
    ·验证
        //打包好的rpm包在RENS/x86_64/nginx-1.8.0-1.x86_64/prm
        scp发送到新建虚拟机测试安装
          # rpm -ivh nginx-1.8.0-1.x86_64.rpm



END

个人笔记--->服务器篇

标签:web应用   加密功能   welcome   tomcat   cer   基本   dir   sub   factory   

原文地址:http://blog.51cto.com/13601331/2070846

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!