欧美vvv,亚洲第一成人在线,亚洲成人欧美日韩在线观看,日本猛少妇猛色XXXXX猛叫

新聞資訊

    一、安裝Nginx

    1. 拉取鏡像

    admin1@cade-ubuntu:~/docker$ sudo docker pull nginx

    啟動:

    admin1@cade-ubuntu:~/docker$ sudo docker images nginx
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    nginx               latest              719cd2e3ed04        3 days ago          109MB
    admin1@cade-ubuntu:~/docker$ sudo docker run --name cade-nginx-test -p 8081:80 -d nginx
    d21ec270e7f30aa1010cc9ee49aee1c0481a411efe9689067a9d07271b9d8ca5
    admin1@cade-ubuntu:~/docker$ 

    這時可以通過網址打開nginx站點: http://ip:8081

    2. nginx部署

    創建nginx目錄

    mkdir -p ~/nginx/www ~/nginx/logs ~/nginx/conf

    拷貝容器內nginx默認配置文件到本地當前目錄下的conf目錄:

    sudo docker cp d21ec270e7f3:/etc/nginx/nginx.conf ~/nginx/conf

    部署命令:

    sudo docker run -d -p 8082:80 --name cade-nginx-test-web -v ~/nginx/www:/usr/share/nginx/html -v ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v ~/nginx/logs:/var/log/nginx nginx

    寫個測試頁面:

    cd ~/nginx/www
    vim index.html
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>my test docker</title>
    </head>
    <body>
        <h1>我的第一個標題</h1>
        <p>我的第一個段落。</p>
    </body>
    </html>

    訪問站點:http://ip:8082 查看部署好的網頁。

    3. 其它命令

    重新載入nginxsudo docker kill -s HUP container-name

    重啟nginx容器

    sudo docker restart container-name

    二、拉取PHP鏡像方法安裝PHP

    1. 拉取php鏡像

    sudo docker pull php:5.6-fpm

    運行鏡像:

    sudo docker run --name  myphp-fpm -v ~/nginx/www:/www  -d php:5.6-fpm

    2. 部署

    其中-v將主機中的~/nginx/www掛載到容器的/www

    mkdir ~/nginx/conf/conf.d
    vim ~/nginx/conf/conf.d/cade-test-php.conf 
    server {
        listen       80;
        server_name  localhost;
    
        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm index.php;
        }
    
        error_page   500 502 503 504  /50x.html;
        location=/50x.html {
            root   /usr/share/nginx/html;
        }
    
        location ~ \.php$ {
            fastcgi_pass   php:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /www/$fastcgi_script_name;
            include        fastcgi_params;
        }
    }

    啟動nginx

    sudo docker run --name cade-php-nginx -p 8083:80 -d \
        -v ~/nginx/www:/usr/share/nginx/html:ro \
        -v ~/nginx/conf/conf.d:/etc/nginx/conf.d:ro \
        --link myphp-fpm:php \
        nginx

    參數說明:

    • -p 8083:80: 端口映射,把 nginx 中的 80 映射到本地的 8083 端口。
    • ~/nginx/www: 是本地 html 文件的存儲目錄,/usr/share/nginx/html 是容器內 html 文件的存儲目錄。
    • ~/nginx/conf/conf.d: 是本地 nginx 配置文件的存儲目錄,/etc/nginx/conf.d 是容器內 nginx 配置文件的存儲目錄。
    • –link myphp-fpm:php: 把 myphp-fpm 的網絡并入 nginx,并通過修改 nginx 的 /etc/hosts,把域名 php 映射成 127.0.0.1,讓 nginx 通過 php:9000 訪問 php-fpm。

    訪問站點: http://ip:8083/index.php 顯示phpinfo信息。

    三、安裝MySQL

    1. docker pull mysql

    docker pull mysql:5.7

    2. 建立目錄并啟動鏡像

    mkdir -p /usr/local/docker/mysql/conf
    mkdir -p /usr/local/docker/mysql/logs
    mkdir -p /usr/local/docker/mysql/data
    
    sudo docker run -p 3306:3306 --name mysql \
    -v /usr/local/docker/mysql/conf:/etc/mysql \
    -v /usr/local/docker/mysql/logs:/var/log/mysql \
    -v /usr/local/docker/mysql/data:/var/lib/mysql \
    -e MYSQL_ROOT_PASSWORD=123456 \
    -d mysql:5.7


    3. 簡單的方式啟動mysql鏡像

    docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest
    
    docker run -p 3306:3306 --name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

    4. 進入容器

    sudo docker exec -it mysql bash
    mysql -uroot -p123456

    注意要點:

    • docker創建后,mysql的初始化啟動需要一點時間,可以通過`docker logs mysql`來觀察一下啟動情況。
    • 我試過幾次,有的時候創建密碼會不成功(空密碼),可以進入容器的mysql控制臺使用 set password for root@localhost=password('123'); 修改密碼。

    一、如何保持session會話

    目前,為了使web能適應大規模的訪問,需要實現應用的集群部署。集群最有效的方案就是負載均衡,而實現負載均衡用戶每一個請求都有可能被分配到不固定的服務器上,這樣我們首先要解決session的統一來保證無論用戶的請求被轉發到哪個服務器上都能保證用戶的正常使用,即需要實現session的共享機制。

    在集群系統下實現session統一的有如下幾種方案:

    1、請求精確定位:sessionsticky,例如基于訪問ip的hash策略,即當前用戶的請求都集中定位到一臺服務器中,這樣單臺服務器保存了用戶的session登錄信息,如果宕機,則等同于單點部署,會丟失,會話不復制。

    2、session復制共享:sessionreplication,如tomcat自帶session共享,主要是指集群環境下,多臺應用服務器之間同步session,使session保持一致,對外透明。 如果其中一臺服務器發生故障,根據負載均衡的原理,調度器會遍歷尋找可用節點,分發請求,由于session已同步,故能保證用戶的session信息不會丟失,會話復制,。

    此方案的不足之處:

    必須在同一種中間件之間完成(如:tomcat-tomcat之間).

    session復制帶來的性能損失會快速增加.特別是當session中保存了較大的對象,而且對象變化較快時, 性能下降更加顯著,會消耗系統性能。這種特性使得web應用的水平擴展受到了限制。

    Session內容通過廣播同步給成員,會造成網絡流量瓶頸,即便是內網瓶頸。

    在大并發下表現并不好

    3、基于cache DB緩存的session共享

    基于 memcache/redis緩存的 session 共享

    即使用cacheDB存取session信息,應用服務器接受新請求將session信息保存在cache DB中,當應用服務器發生故障時,調度器會遍歷尋找可用節點,分發請求,當應用服務器發現session不在本機內存時,則去cache DB中查找,如果找到則復制到本機,這樣實現session共享和高可用。

    二、本配置基于tomcat7環境,通過tomcat集群自帶的session復制,session信息將會被自動復制到各個節點。

    1、案例環境:

    主機操作系統IP地址主要軟件

    Nginxcentos7.2

    192.168.10.19/24Nginx1.6

    MySQLcentos7.2192.168.10.22/24MySQL5.6.4

    tomcat-1centos7.2

    192.168.10.20/24jdk-7u65-linux-x64.g

    z

    apache-tomcat-7.0.54.tar.gz

    tomcat-2centos7.2

    192.168.10.24/24

    實驗拓撲:



    2、在tomcat-1和tomcat-2節點上安裝JDK

    在安裝tomcat之前必須先安裝JDK,JDK的全稱是java development kit,是sun公司免費提供的java語言的軟件開發工具包,其中包含java虛擬機(JVM),編寫好的java源程序經過編譯可形成java字節碼,只要安裝了JDK,就可以利用JVM解釋這些字節碼文件,從而保證了java的跨平臺性。

    安裝JDK,配置java環境:

    將jdk-7u65-linux-x64.gz解壓



    將解壓的jdk1.7.0_65目錄移致動到/usr/local/下并重命名為java



    在/etc/profile文件中添加內容如下:



    通過source命令執行profile文件,使其生效。



    分別在在tomcat-1和tomcat-2節點運行java -version命令查看java版本是否和之前安裝的一致。



    至此java環境已經配置完成

    3、在tomcat-1和tomcat-2節點安裝配置tomcat

    解壓apache-tomcat-7.0.54.tar.gz包



    將解壓生成的文件夾移動到/usr/local/下,并改名為tomcat7



    配置tomcat環境變量

    /etc/profile文件內容如下:



    通過source命令執行profile文件,使其生效。



    啟動tomcat



    Tomcat默認運行在8080端口,運行netstat命令查看8080端口監聽的信息



    打開瀏覽器分別對tomcat-1和tomcat-2訪問測試



    如果想關閉tomcat則運行/usr/local/tomcat7/bin/shutdown.sh命令

    好了,大家可以看到訪成功。說明我們的tomcat安裝完成,下面我們來配置一下

    4、修改配置文件

    # vim /usr/local/tomcat7/conf/server.xml

    設置默認主機,并增加jvmRoute



    定義一個虛擬主機,并將網站文件路徑指向/web/webapp1,在host段增加context段



    <Context docBase="/web/webapp1" path="" reloadable="true"/>

    增加文檔目錄與測試文件



    index.jsp內容如下:



    停止tomcat運行,檢查配置文件并啟動tomcat






    Tomcat-2節點與tomcat-1節點配置基本類似,只是jvmRoute不同,另外為了區分由哪個節點提供訪問,測試頁標題也不同。其他的配置都相同。過程略

    再次測試訪問一下




    可以看到session會話不同

    好了,到這里我們準備工作就全部完成了,下面我們來配置tomcat的負載均衡,通過session復制實現會話保持。

    5、配置會話共享集群,分別在tomcat-1和tomcat-2完成下面的操作。

    配置server.xml文件



    在Server.xml中,找到被注釋<Cluster/>節點,在下面添加如下內容:





    注意:上圖紅線標記出需加“/”

    以上內容可以參考一下辦法尋找并復制粘貼:





    修改應用的web.xml文件,加入標簽<distributable/>,如下所示:



    添加標簽<distributable/>



    直接加在</web-app>之前就可以了這個是加入tomcat的session 復制的,做tomcat集群必須需要這一步,否則用戶的session 就無法正常使用。

    注意:以上內容可以參考clustering/session replication how-to

    注意:tomcat主機必須要指向正確的網關,否則tomcat會啟動失敗



    重啟tomcat服務并查看端口的監聽狀態。



    Tomcat-2節點與tomcat-1配置類似,只是address要寫成tomcat-2的ip。

    查看tomcat日志:/usr/local/tomcat7/logs/catalina.yyyy-mm-dd.log



    6、nginx服務器配置

    用nginx實現tomcat的負載均衡

    安裝相關軟件包:#yum –y installpcre-develzlib-devel



    解壓并安裝nginx



    修改nginx.conf文件,內容如下:




    啟動nginx服務



    建立防火墻規則



    7、下面開始測試

    在客戶端使用瀏覽器訪問nginx的地址



    刷新頁面



    大家可以從圖中看到,不管你怎么刷新SessionID都不會變,說明我們的Tomcat的DeltaManager集群配置完成,實現了多臺主機之間會話共享。

    8、tomcat連接mysql數據庫

    192.168.10.22作為mysql數據庫服務器

    配置mysql



    插入些數據



    下載mysql-connector-java-5.1.22-bin.jar并復制到$CATALINA_HOME/lib目錄下



    context configuration

    configure the JNDI datasource in tomcat by adding a declaration for your resource to your context




    保存修改并退出

    web.xml configuration




    保存修改并退出,重啟tomcat服務



    Test code

    Now create a simple test.jsp page,內容如下:




    注意:防火墻開啟3306端口



    測試訪問



    看到上面的結果說明訪問成功

    注:以上配置可以參考tomcat docs






    轉載文件地址:http://blog.51cto.com/yw666/1888747

    本文作者:一盞燭光

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有