容器雲環境下,Nginx+tomcat+redis實現web專案叢集
環境:由於在Windows下Tomcat8與Nginx實驗不成功,錯誤的認為8不行,就有了下面的歷程,,,,經過請教師兄,發現自己的方法不對,
#利用centos基礎映象以及jdk Tomcat 編輯新的映象Tomcat7
#刪掉jdk資料夾下多餘檔案, 降低build的映象大小
rm -rf /root/image/jdk7/*src.zip \
/root/image/jdk7/lib/missioncontrol \
/root/image/jdk7/lib/visualvm \
/root/image/jdk7/lib/*javafx* \
/root/image/jdk7/jre/lib/plugin.jar \
/root/image/jdk7/jre/lib/ext/jfxrt.jar \
/root/image/jdk7/jre/bin/javaws \
/root/image/jdk7/jre/lib/javaws.jar \
/root/image/jdk7/jre/lib/desktop \
/root/image/jdk7/jre/plugin \
/root/image/jdk7/jre/lib/deploy* \
/root/image/jdk7/jre/lib/*javafx* \
/root/image/jdk7/jre/lib/*jfx* \
/root/image/jdk7/jre/lib/amd64/libdecora_sse.so \
/root/image/jdk7/jre/lib/amd64/libprism_*.so \
/root/image/jdk7/jre/lib/amd64/libfxplugins.so \
/root/image/jdk7/jre/lib/amd64/libglass.so \
/root/image/jdk7/jre/lib/amd64/libgstreamer-lite.so \
/root/image/jdk7/jre/lib/amd64/libjavafx*.so \
/root/image/jdk7/jre/lib/amd64/libjfx*.so
#編輯Dockerfile檔案
cd /root/image
vi Dockerfile
#插入以下內容
#使用的基礎映象
FROM registry.cn-hangzhou.aliyuncs.com/repos_zyl/centos:0.0.1
#作者資訊
MAINTAINER
#建立目錄
RUN mkdir -p /java/jdk7
#把當前目錄下的jdk資料夾新增到映象
ADD jdk7 /java/jdk7
#建立tomcat目錄
RUN mkdir -p tomcat
#把當前目錄下的tomcat資料夾新增到映象
ADD tomcat7 tomcat
#新增環境變數
ENV JAVA_HOME /java/jdk7
ENV CATALINA_HOME tomcat
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
#暴露8080埠
EXPOSE 8080
#啟動時執行tomcat
CMD ["tomcat/bin/catalina.sh","run"]
#生成新的Tomcat7映象
docker build -t tomcat7 /root/image/
#執行測試
docker run -d -p 8089:8080 --name testtomcat tomcat7
docker exec -it testtomcat /bin/bash
#配置並啟動mysql映象, 記得將資料庫匯入 得到MySQL的執行地址及埠,將其修改入專案jar包
docker build -t ntrwsql:1 /root/docker/NginxTomcatRedisWeb/poject/mysql
docker run -d -p 13306:3306 -e MYSQL_ROOT_PASSWORD=123 --name ntrwsql ntrwsql:1
docker exec -it ntrwsql
#配置redis映象 獲得IP地址以及埠號
docker pull docker.io/redis
#將其tag push到自己的私有倉庫 便於下載
docker tag docker.io/redis redis:
#執行redis
docker run -i -p 16379:6379 --name testredis docker.io/redis
docker run -d -p 16379:6379 --name testredis docker.io/redis
#記得這裡的埠號與Tomcat下面的context.xml保持一致
#編譯Tomcat7
#修改Tomcat中的context.xml檔案 將修改好的覆蓋原資料夾下的
echo "
<?xml version='1.0' encoding='utf-8'?>
<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
host="masterIP"
port="16379"
database="0"
maxInactiveInterval="60" />
</Context>" > context.xml
#建立Dockerfile檔案
cat > Dockerfile<< EOF
FROM tomcat7
COPY context.xml /tomcat/conf/
COPY webPoject.war /tomcat/webapps/
COPY commons-pool2-2.4.2.jar /tomcat/lib/
COPY jedis-2.9.0.jar /tomcat/lib/
COPY tomcat-redis-session-manager1.2.jar /tomcat/lib/
EXPOSE 8080
CMD ["/tomcat/bin/catalina.sh","run"]
EOF
#編譯Tomcat7
docker build -t ntrwtomcat71:1 /root/docker/NginxTomcatRedisWeb/poject/tomcat71
docker run -i -p 8180:8080 --name 71testtomcat ntrwtomcat71:1
docker run -d -p 8180:8080 --name 71testtomcat ntrwtomcat71:1
docker stop 71testtomcat
docker rm 71testtomcat
docker rmi ntrwtomcat71:1
#編輯第二個Tomcat2
#將第一個的Tomcat下的檔案copy到新的Tomcat目錄下
cp -p /root/docker/NginxTomcatRedisWeb/poject/tomcat71/* /root/docker/NginxTomcatRedisWeb/poject/tomcat72/
#編譯Tomcat7
docker build -t ntrwtomcat72:1 /root/docker/NginxTomcatRedisWeb/poject/tomcat72
docker run -i -p 8280:8080 --name 72testtomcat ntrwtomcat72:1
docker run -d -p 8280:8080 --name 72testtomcat ntrwtomcat72:1
docker stop 72testtomcat
docker rm 72testtomcat
docker rmi ntrwtomcat72:1
#配置Nginx
docker pull docker.io/nginx
docker run -d -p 800:80 --name ntrwnginx docker.io/nginx
#停止測試的Nginx
docker stop ntrwnginx
docker rm ntrwnginx
#編輯nginx.conf配置檔案,主要是專案名以及管理的Tomcat的IP和埠號
#編輯Dockerfile檔案
FROM nginx
MAINTAINER
COPY nginx.conf /etc/nginx/
EXPOSE 8080
#編譯ntrwnginx
docker build -t ntrwnginx:1 /root/docker/NginxTomcatRedisWeb/poject/nginx
docker run -d -p 800:80 --name ntrwnginx ntrwnginx:1
#nginx.conf配置檔案 參考
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
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;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on; ------這裡注意
upstream webPoject {
server masterIP:8180;
server masterIP:8280;
}
server {
listen 80;
server_name localhost;
#------這裡注意
charset utf-8;
#access_log logs/host.access.log main;
#------這裡注意
location / {
root html;
index index.html index.htm;
add_header Cache-Control 'no-store';
client_max_body_size 100m;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# proxy_cache Z;
proxy_cache_valid 200 1m;
proxy_pass http://webPoject;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}
相關推薦
容器雲環境下,Nginx+tomcat+redis實現web專案叢集
環境:由於在Windows下Tomcat8與Nginx實驗不成功,錯誤的認為8不行,就有了下面的歷程,,,,經過請教師兄,發現自己的方法不對, #利用centos基礎映象以及jdk Tomcat 編輯新的映象Tomcat7 #刪掉jdk資料夾下多餘檔案, 降低build的
linux環境下,檢視Tomcat日誌
在linux上部署專案時,啟動tomcat,經常只能看到如下的顯示: 如果專案出了什麼bug或者報了什麼異常,我們很難看到出錯的提示資訊,怎麼樣才能看到類似windows上的tomcat或者eclipse上執行時那樣實時看到出錯提示呢? 方法如下: 1、進入你tomcat的安裝目
分散式的環境下, MySQL和Redis如何保持資料的一致性?
問題:一臺MySQL,一臺Redis,兩臺應用伺服器,使用者的資料儲存持久化在MySQL中,快取在Redis,有請求的時候從Redis中獲取快取的使用者資料,有修改則同時修改MySQL和Redis中的資
windows系統環境下,讓tomcat自動重啟的指令碼
如果你使用的是Windows系統,並且想讓tomcat掛掉之後自動重啟的話,可以直接複製下面的程式碼,然後儲存到一個文字檔案中,然後將字尾名命名為.vbs,再然後雙擊執行即可。如:tomcat自動重啟指令碼.vbs 這裡稍微解釋一下,幾點值得注意的內容:
Nginx+Tomcat+Redis實現session共享
linux nginx tomcat redis session 通過Nginx作為前端的負載,把請求分發到後端的Tomcat服務器上,提高並發數;但是單純的通過Nginx的ip_hash負載是很多問題的。只要用戶一切換網絡或者後端Tomcat主機宕機session就失效;架構圖:基本環境
Redis學習筆記(六)Nginx+Tomcat+Redis實現負載均衡、資源分離、session共享
CentOS安裝Nginx CentOS安裝Tomcat CentOS安裝Redis 多個Tomcat負載均衡例項:可在伺服器上覆製出多個Tomcat分別修改Tomcat的 http訪問埠(預設為8080埠) Shutdown埠(預設為8005埠) JVM啟
基於nginx tomcat redis分散式web應用的session共享配置
apply plugin: 'java' apply plugin: 'maven' apply plugin: 'signing' group = 'com.orangefunction' version = '2.0.0' repositories { mavenCentral
Nginx+Tomcat+Redis+NFS搭建伺服器叢集
1、安裝nginx及外掛 a) 下載外掛 b) 下載nginx,並新增模組 參考:http://www.linuxyan.com/web-server/90.html 首先去這裡下載nginx的模組https://github.com/yaoweibin/ngin
Nginx+Tomcat+Redis搭建共享SESSION叢集
以Nginx作為反向代理伺服器,搭建Tomcat叢集,同時將SESSION資訊快取到Redis中。本文中Nginx是單機的,在實際環境中可以搭建Nginx叢集,以保證其的高可用,Tomcat是叢集的,Redis也是單機的,在實際環境中也可以搭建Redis叢集。 環境
nginx+tomcat環境下,web項目文件上傳問題(未完待續)
chm 技術 無法 web 速度 目錄 環境 自己的 是把 最近我把自己的服務器換成centos,利用nginx做服務器實現動靜分離,覺得項目響應的速度明顯提高了(一周之前還是Windows服務器+純tomcat結構,慢慘了T_T),以前都是用tomcat做服務器,用了
CentOS下安裝JDK,Tomcat,Redis,Mysql,及項目發布
防火墻 分享 localhost NPU tools local src isa pass 上傳文件到服務器,安裝lrzsz , 可以將本地的文件上傳到linux系統上。 如果是CentOS則可以用yum install lrzsz 命令安裝,更方便。 或:yum -y
在nginx環境下,直接用域名訪問(首頁)
①: server { listen 80; server_name www.njm1.com; location = / { #=/規則可以直接訪問域名。如:www.njm1.com。跳轉到http://192.168.177.132:8080
eclipse環境下如何配置tomcat,並且把專案部署到Tomcat伺服器上
eclipse環境下如何配置tomcat 開啟Eclipse,單擊“Window”選單,選擇下方的“Preferences”。 單擊“Server”選項,選擇下方的“Runtime Enviro
Nginx+Tomcat搭建叢集,Spring Session+Redis實現Session共享
小夥伴們好久不見!最近略忙,部落格寫的有點少,嗯,要加把勁。OK,今天給大家帶來一個JavaWeb中常用的架構搭建,即Nginx+Tomcat搭建服務叢集,然後通過Spring Session+Redis實現Session共享。 閱讀本文需要有如下知識點:
linux環境下,spring boot專案war包放入tomcat中,訪問報404(絕對能夠解決你的問題,相信我~)
阿里雲伺服器上,之前自己也部署過一個測試用的專案,直接訪問也是可以訪問的,但是,,不知道為啥我新建立的一個spring boot專案選擇war包部署到tomcat上面,訪問結果都是404,找了很多中解決方法,特此記錄一下先說明一下。因為我建立maven專案的時候,選擇的就是w
Centos 環境下,有關Nginx安裝與配置詳解
Linux中Nginx安裝與配置詳解(CentOS-6.5:nginx-1.5.0)。 1 Nginx簡介 Nginx ("engine x") 是一個高效能的 HTTP 和 反向代理 伺服器,也是一個 IMAP/POP3/SMTP 代理伺服器。 Nginx 是由 Ig
分散式高併發伺服器做請求分發,session共享(nginx+tomcat+redis)
我這裡列舉一個可行方案(nginx+tomcat+redis) 首先 nginx,它幫助實現了分散式 Nginx是一款輕量級的Web 伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器
phpstudy nginx環境下,tp5.1重寫規則
直接貼程式碼了。server { listen 80; server_name 127.0.0.1; index index.html index.htm index.php l.php; #charse
nginx + php7環境下,新建phalcon專案,rewrite問題
本文預設已經安裝好phalcon的extension與開發工具1. 新建專案store進入到專案根目錄www/html,然後執行:phalcon create-project store注意,個人理解,因為此時建立的專案包含apache的rewrite邏輯。若按照官網上教程,
[伺服器] linux(Centos7)下的nginx+tomcat+java+mysql環境搭建
系統環境搭建 centos7下載與安裝(Mini版) 下載地址:http://mirrors.163.com/centos/7/isos/x86_64/ 網易的源,國內嘛,快些.像我選得就是最小化版本的,即CentOS-7-x86_64-Min