tomcat
tomcat 是java的网站服务,不过现在java都是用开源jkd,即open-jdk
装包,先要装好java的环境:
yum –y install java-1.8.0-openjdk java-1.8.0-openjdk-headless
装好后可以查看一些java版本信息 java -version
可以yum下载,不过建议可以使用升级的tomcat,在资源中有具体分享,进行tar解压后把其放入/usr/local/下改名为tomcat即可
这个目录中的子目录内容为:
bin/ | 主程序目录,里面的startup.sh用于启动tomcat |
lib/ | 库文件目录 |
logs/ | 日志目录 |
temp/ | 临时目录 |
work/ | 自动编译目录jsp代码转换servlet |
conf/ | 配置文件目录 |
webapps/ | 页面目录 |
不过tomcat的启动有些bug,可能启动程序显示启动成功,但netstat -ntlup查看的时候发现tomcat的8005端口没有开启,这就有问题,其原因是生成随机值速度慢,可以等1-3分钟,如果还是不行就用下面的解决方案:
mv /dev/random /dev/random.bak
ln -s /dev/urandom /dev/random
XML语言
语法一:
<模块名 模块配置1 模块配置2>
模块配置3
模块配置4
</模块名>
语法二:
<模块名 模块配置1 模块配置2 />
注释的语法是:
<!--
被注释的部分内容
-->
两个语法都是一个意思,不过,两个平级模块不能嵌套在一起,每个部分都要是一个整体
tomcat的配置文件:
tomcat/conf/server.xml,其中的语法格式和XML的一样
<Server>
<Service>
<Connector port=8080 /> # 定义端口
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" keystoreFile="密钥对" keystorePass="密码" clientAuth="false" sslProtocol="TLS" />
<Engine name="Catalina" defaultHost="域名"> # 定义虚拟主机群
<Host name="域名" appBase="为指" unpackWARS="true" autoDeploy="true"> # 定义虚拟主机
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="位置" prefix=" 日志名" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> # 日志文件定义
<Context path="/地址" docBase="base" reloadable="true"/> # 对于客户段访问的地址的转发
</Host>
</Engine>
</Service>
</Server>
模块体系结构:
server | ||||
service 提供服务 | ||||
Connector port=端口 | Engine 其中defaultHost定义下面的所有虚拟主机的默认访问 |
|||
Host | Host | …… | ||
虚拟主机1 | 虚拟主机2 | |||
Valve 定义日志信息 | ||||
Context 针对客户端地址的转发1 |
Context 针对客户端地址的转发2 |
内容解释:(里面所有的位置,如果写相对路径都是从tomcat所在的目录开始,绝对路径就是服务器中的绝对路径)
1. Connector port=端口号
这就完成端口监听的定义。
2. Engine name="Catalina" defaultHost="localhost"
name是指虚拟主机群的名字;
defaultHost指的是当没有客户端要求的域名的时候默认哪个虚拟主机。
3. Host name="localhost" appBase="a" unpackWARS="true" autoDeploy="true"
name是指域名;
appBase是指网站根目录。
4. Valve className="org.apache.catalina.valves.AccessLogValve" directory="位置" prefix=" 日志名" suffix=".txt" pattern="%h %l %u %t "%r" %s %b"
className指记录的是什么模块的,默认写的是登陆日志;
directory指日志保存的位置;
prefix指日志定义的名字;
suffix指日志文件的后缀名;
pattern指的记录的内容。
5. Context path="/地址" docBase="base" reloadable="true"
path指客户端输入的目标地址,如果path设置的指为空,则代表输入域名的根目录进行修改;
docBase指当用户输入目标地址后,前往哪个地址查看网页文件。
6. 安全的tomcat
先生成密钥对: keytool -genkeypair -alias 名字 -keyalg RSA(算法,也可以是CSA) -keystore 密钥对位置/密钥名字
再写端口的信息即可,上面有写,就不阐释了,在访问的时候要著明端口号
tomcat和其他http服务,其特殊的地方:
1. tomcat的端口和虚拟主机无关,客户访问是通过任意一个端口就可以访问所有的虚拟主机,如果作安全的web,只要是从安全web的端口进来访问,所有的网站都是安全的web。
2. tomcat的端口,一般的http是80,tomcat是8080;一般的安全的web是443,tomcat是8443,所以用浏览器访问的时候,记得要在IP或者域名后面加上段口号
如果需要用nginx代理tomcat的web服务器,具体操作和nginx代理一个http服务器一模一样,只不过在upstream中写server的时候,后面的端口改成8080或者8443即可。
Varnish 缓存服务器
用于CDN的网站加速,一般的公司,用腾讯或者阿里的CDN,自己搭建代价比较大,具体搭建过程不难,需要一个yum不能安装的包,所以具体的资源,在本blog会上传,具体装包过程
装包:yum -y install gcc readline-deve ncurses-devel pcre-devel python-docutils-0.11-0.2.20130715svn7687.el7.noarch.rpm
然后创建一个用户:useradd -s /sbin/nologin varnish
对源码包进行源码编译:解包,配置,编译,安装即可
复制配置文件,位置无所谓,都可以,在后面的启动的时候会要求制定
cp etc/example.vcl /usr/local/etc/default.vcl
之后修改配置文件 /usr/local/etc/default.vcl
backend default {
.host = "192.168.2.100";
.port = "80";
}
启动服务:varnishd -f /usr/local/etc/default.vcl
–s malloc,128M # 定义varnish使用内存作为缓存,空间为128M
–s file,/var/lib/varnish_storage.bin,1G # 定义varnish使用文件作为缓存
日志
varnishlog # varnish日志
varnishncsa # 访问日志
varnishadm # 交互式清除缓存,再ban req.url ~ .*