centos下安装并简单使用Nginx
一、nginx安装
链接:https://pan.baidu.com/s/1gx6oTj59aTuKofOWze6rtg
提取码:1234
#下载unzip命令
yum -y install unzip
#解压
unzip nginx.zip
#安装并升级目录下的所有rpm包
cd nginx/gcc
rpm -Uvh *.rpm --nodeps --force
cd ../gcc-c++
rpm -Uvh *.rpm --nodeps --force
#配置、编译、安装
cd ..
tar -zxvf libtool-2.4.2.tar.gz nginx-1.13.9.tar.gz pcre-8.35.tar.gz
cd libtool-2.4.2
./configure;make;make install
cd ../pcre-8.35
./configure;make;make install
cd ../nginx-1.13.9
#添加stream模块
./configure --with-stream
make
make install
二、http模块:配合tomcat
1.配置nginx
cd /usr/local/nginx/sbin
vim ../conf/nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream myserver { #加权轮询
server 123.57.44.56:8081 weight=1;
server 123.57.44.56:8082 weight=2;
}
server {
listen 80; #监听本机80端口
server_name localhost;
location / {
root html;
index index.html index.htm;
proxy_pass http://myserver;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
./nginx -r reload
2.配置tomcat
前提:已成功安装JDK、已下载tomcat。
配置单机多实例Tomcat。
tomcat(原目录)作为安装目录存放同一份bin、lib、···。
tomcat01|02(新目录)代表不同实例作为工作目录,存放各自的conf、logs、webapps、temp、work(直接拷贝来自于tomcat中的对应内容)。
tomcat_shell完成start.sh和stop.sh脚本,实现服务的开启和关闭。
/usr/local
├── tomcat
│ ├── bin
│ ├── BUILDING.txt
│ ├── CONTRIBUTING.md
│ ├── lib
│ ├── LICENSE
│ ├── NOTICE
│ ├── README.md
│ ├── RELEASE-NOTES
│ └── RUNNING.txt
├── tomcat01
│ ├── conf
│ ├── logs
│ ├── temp
│ ├── webapps
│ └── work
├── tomcat02
│ ├── conf
│ ├── logs
│ ├── temp
│ ├── webapps
│ └── work
├── tomcat_shell
│ ├── start.sh
│ └── stop.sh
/usr/local/tomcat01/conf
├── Catalina
├── catalina.policy
├── catalina.properties
├── context.xml
├── jaspic-providers.xml
├── jaspic-providers.xsd
├── logging.properties
├── server.xml
├── tomcat-users.xml
├── tomcat-users.xsd
└── web.xml
start.sh
#!/bin/bash
export CATALINA_HOME=/usr/local/tomcat
export CATALINA_BASE=${1%/}
echo $CATALINA_BASE
TOMCAT_ID=`ps aux |grep "java"|grep "Dcatalina.base=$CATALINA_BASE "|grep -v "grep"|awk '{ print $2}'`
if [ -n "$TOMCAT_ID" ] ; then
echo "tomcat(${TOMCAT_ITOMCAT_ID}) still running now , please shutdown it firest";
exit 2;
fi
TOMCAT_START_LOG=`$CATALINA_HOME/bin/startup.sh`
if [ "$?" = "0" ]; then
echo "$0 ${1%/} start succeed"
else
echo "$0 ${1%/} start failed"
echo $TOMCAT_START_LOG
fi
stop.sh
#!/bin/bash
export CATALINA_HOME=/usr/local/tomcat
export CATALINA_BASE=${1%/}
echo $CATALINA_BASE
TOMCAT_ID=`ps aux |grep "java"|grep "[D]catalina.base=$CATALINA_BASE "|awk '{ print $2}'`
if [ -n "$TOMCAT_ID" ] ; then
TOMCAT_STOP_LOG=`$CATALINA_HOME/bin/shutdown.sh`
else
echo "Tomcat instance not found : ${1%/}"
exit
fi
if [ "$?" = "0" ]; then
echo "$0 ${1%/} stop succeed"
else
echo "$0 ${1%/} stop failed"
echo $TOMCAT_STOP_LOG
fi
修改tomcat01和tomcat02的配置文件,以tomcat01为例。
server.xml:分配各自的端口号
<?xml version="1.0" encoding="UTF-8"?>
<Server port="8084" shutdown="SHUTDOWN"> #此处修改为8084、8085(tomcat02)
<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
<Service name="Catalina">
<Connector port="8081" protocol="HTTP/1.1" #此处修改为8081、8082(tomcat02)
connectionTimeout="20000"
redirectPort="8443" />
<Connector protocol="AJP/1.3"
address="::1"
port="8085" #此处修改为8085、8086(tomcat02)
redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
</Service>
</Server>
web.xml:规定了默认打开的页面
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
/usr/local/tomcat01/webapps/ROOT/indes.jsp为默认打开页面。
3.运行
/usr/local/tomcat_shell/start.sh /usr/local/tomcat01
/usr/local/tomcat_shell/start.sh /usr/local/tomcat02
http://123.57.44.56
三、stream模块:配合mysql
工作节点C不能暴露于外网,转发节点B负责对外,数据库节点A在外网中。
1.配置nginx
cd /usr/local/nginx/sbin
vim ../conf/nginx.conf
worker_processes 1;
events {
worker_connections 256; #过多可能导致失败
}
stream {
upstream stream_server {
server xxxx:3306;
}
server {
listen 26615; #监听本机26615端口
proxy_connect_timeout 8s;
proxy_timeout 2h;
proxy_pass stream_server; #转发至xxxx:3306
}
}
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
./nginx -r reload
2.运行
工作节点C:连接数据库节点A
mysql -h节点B的IP地址 --Port=Nginx监听的端口号 -uroot -p