centos Nginx+Tomcat+Session共享+SSL證書+mysql讀寫分離

如今阿里雲服務器上申請SSL證書。而後綁定服務器ip。html

服務器配置:java

192.168.0.1(42.42.42.42(公網ip))mysql

192.168.0.2linux

192.168.0.3nginx

192.168.0.4c++

192.168.0.5web

服務器提供一個對外的彈性ip(公網ip),各服務器之間經過子網ip鏈接。redis

192.168.0.1配置redis+nginxspring

192.168.0.2,192.168.0.3 配置tomcatsql

192.168.0.4,192.168.0.5 配置mysql

 

每臺服務器上來直接

yum -y install gcc-c++ ncurses-devel cmake make perl gcc autoconf automake zlib libxml libgcrypt libtool bison pcre pcre-devel zlib zlib-devel openssl openssl-devel libaio

關閉防火牆:

個人是華爲服務器在安全組配置就行 防火牆若是再開就會訪問不了。

chkconfig iptables off  永久關閉防火牆

service iptables stop  這種關閉防火牆下次開機仍是會打開

修改配置文件
# vi /etc/selinux/config
將SELINUX=enforcing改成SELINUX=disabled
須要重啓機器生效!!通常購買的服務這個都關閉了。

 

 

nginx安裝:

cd /usr/local/src

官網下載。上傳服務器或直接wget

tar -zxvf nginx-1.13.6

cd nginx-1.13.6

mkdir /usr/local/nginx

./configure --prefix=/usr/local/nginx

make && make install

cd /usr/local/nginx

mkdir -p /usr/local/nginx/conf/cert

將證書nginx SSL證書放到 /usr/local/nginx/conf/cert目錄下

vim /conf/nginx.conf

user  root;
worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;

    #配置被代理的服務器
    upstream my_servers{
             #ip_hash
         server 192.168.0.6:8080;
         server 192.168.0.4:8080;            
    }
    server {
        listen       81;
        server_name  game.xxxxx.com;

        location / {
            root   html;
            index  index.html index.htm;
	        proxy_pass http://my_servers;
            proxy_http_version 1.1;
	        proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    # HTTPS server
    server { 
    	listen 443;
       	server_name game.xxxxx.com;
       	ssl on;
       	ssl_certificate   cert/214292271630849.pem;
       	ssl_certificate_key  cert/214292271630849.key;
       	ssl_session_timeout 5m;
       	ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
       	ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
      	ssl_prefer_server_ciphers on;
      	location / {
    		proxy_pass http://my_servers;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       	}
    }

}

/usr/local/nginx/sbin/nginx -t

測試若是successful

/usr/local/nginx/sbin/nginx 

啓動nginx

/usr/local/nginx/sbin/nginx -s reload 從新加載nginx 至關於重啓

 

Redis安裝:

mkdir /usr/local/redis

cd /usr/local/src

上傳或直接wget redis。

tar -zxvf redis-4.0.1

cd redis-4.0.1

安裝

make PREFIX=/usr/local/redis install

複製配置文件

cp /usr/local/src/redis-4.0.1/redis.conf /usr/local/redis/

複製啓動腳本,並重命名

cp /usr/local/src/redis-4.0.1/utils/redis_init_script /etc/rc.d/init.d/redis
 

#!/bin/sh
#chkconfig: 2345 80 90
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.
REDISPORT=6379
EXEC=/usr/local/redis/bin/redis-server
CLIEXEC=/usr/local/redis/bin/redis-cli
PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/usr/local/redis/conf/${REDISPORT}.conf"
case "$1" in
start)
if [ -f $PIDFILE ]
then
echo "$PIDFILE exists, process is already running or crashed"
else
echo "Starting Redis server..."
$EXEC $CONF &
fi
;;
stop)
if [ ! -f $PIDFILE ]
then
echo "$PIDFILE does not exist, process is not running"
else
PID=$(cat $PIDFILE)
echo "Stopping ..."
$CLIEXEC -p $REDISPORT shutdown
while [ -x /proc/${PID} ]
do
echo "Waiting for Redis to shutdown ..."
sleep 1
done
echo "Redis stopped"
fi
;;
*)
echo "Please use start or stop as first argument"
;;
esac

$EXEC $CONF &   用於後臺啓動,不要忘記&

#chkconfig: 2345 80 90  這個註釋也要加上,若是不添加上面的內容,在註冊服務時會提示: service redis does not support chkconfig。

EXEC=/usr/local/bin/redis-server 改成 EXEC=/usr/local/redis/bin/redis-server
CLIEXEC=/usr/local/bin/redis-cli 改成 CLIEXEC=/usr/local/redis/bin/redis-cli

CONF="/etc/redis/${REDISPORT}.conf" 改成 CONF="/usr/local/redis/conf/${REDISPORT}.conf"

mkdir /usr/local/redis/conf
cp /usr/local/src/redis3.0/redis.conf /usr/local/redis/conf/6379.conf
以上配置操做完成後, 即可將 Redis 註冊成爲服務:
# chkconfig --add redis

修改 redis 配置文件設置:
# vi /usr/local/redis/conf/6379.conf
修改以下配置
daemonize no 改成> daemonize yes
pidfile /var/run/redis.pid 改成> pidfile /var/run/redis_6379.pid

protected-mode yes 若是不設置密碼這個要改爲no

port 6379 是端口號 若是修改 文件名和上面的啓動腳本也要修改一下

requirepass 123456 這裏是密碼設置
 


啓動 Redis 服務
# service redis start
將 Redis 添加到環境變量中:
# vi /etc/profile
在最後添加如下內容:
## Redis env
export PATH=$PATH:/usr/local/redis/bin
使配置生效:
# source /etc/profile
 

啓動服務

service redis start
 

Tomcat 安裝:192.168.0.2-192.168.0.3

安裝前先安裝jdk

mkdir /usr/local/java

cd /usr/local/src

tar -zxvf jdk-8u152-linux-x64.tar.gz

mv /usr/local/src/jdk1.8.0_152 /usr/local/java/

添加環境變量

vim /etc/profile

加入以下內容:

JAVA_HOME=/usr/local/java/jdk1.8.0_152/
JRE_HOME=/usr/local/java/jdk1.8.0_152/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH

配置生效

source /etc/profile

測試

java –version

 

mkdir /usr/local/tomcat

cd /usr/local/src

上傳或直接wget安裝包

tar -zxvf apache-tomcat-8.5.23

mv apache-tomcat-8.5.23/* /usr/local/tomcat

 

POM.XML

<!-- Jedis -->
<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>2.9.0</version>
</dependency>
<!-- Spring Data Redis -->
<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-redis</artifactId>
    <version>1.7.3.RELEASE</version>
</dependency>
<!-- Spring Session -->
<dependency>
    <groupId>org.springframework.session</groupId>
    <artifactId>spring-session</artifactId>
    <version>1.2.2.RELEASE</version>
</dependency>
<!-- Apache Commons Pool -->
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-pool2</artifactId>
    <version>2.4.2</version>
</dependency>



WEB.XML

<filter>
    <filter-name>springSessionRepositoryFilter</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
    <filter-name>springSessionRepositoryFilter</filter-name>
    <url-pattern>/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>ERROR</dispatcher>
</filter-mapping>

redis.xml

<bean class="org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration"/>
<bean class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
    <property name="hostName" value="localhost" />
    <property name="password" value="your-password" />
    <property name="port" value="6379" />
    <property name="database" value="10" />
</bean>

 

時間問題先整理這些。。。  過幾天在好好整理整理

相關文章
相關標籤/搜索