nginx版本无所谓了,稳定版就行,jdk为1.8(jdk8),tomcat为1.7(tomcat7)
nginx安装流程:
第一步:查看linux里是否存在nginx,存在 卸载
查看:rpm -qa | grep nginx
卸载:rpm -e --nodeps 查找出来的文件名
第二步:安装nginx的环境依赖
yum install pcre-devel zlib-devel openssl-devel
第三步:下载文件并解压
建立下载文件的文件夹:$ mkdir /java/download
进入文件夹:$ cd /java/download
下载文件:$ wget http://nginx.org/download/nginx-1.10.3.tar.gz
解压文件:$ tar -zxvf nginx-1.10.3.tar.gz
第四步:安装nginx
进入文件:$ cd nginx-1.10.3
新建安装文件夹:$ mkdir /java/nginx
编译:$ ./configure --prefix=/java/nginx --with-http_stub_status_module --with-http_ssl_module
安装测试于安装:$ make && make install
执行无误来到这一步,你的nginx已经能够正常工作,通过打开浏览器可以进行访问,nginx默认端口号是80,在浏览器的地址栏输入ip地址就可看到nginx的成功页面
进入nginx的启动目录:
$ cd /java/nginx/sbin
进行启动,停止,重启nginx的操作:
$ ./nginx
$./nginx -s stop
$./nginx -s quit
$./nginx -s reload
第五步:配置开机自启(因为什么呢)
如果你的机子上有很多的服务,突然间服务器给你down了一下,你是不是得一个一个去找然后还得琢磨一下怎么开启,所以在服务器里安装软件应该要方便操作者,不然烦都烦死了
有的时候linux就是这样只需要照着别人的成功文档出来自己想要的东西就行
在rc.local文件里增加一行代码:
$ vim /etc/rc.local
/java/nginx/sbin/nginx
重新分配权限:
$ chmod 755 /etc/rc.local
完成,至于问什么不弄脚本启动等操作呢,我也想弄,但是没弄好,就不弄了。
tomcat安装流程:
要装tomcat先装jdk,要装jdk先卸载土著jdk,因为jdk给了tomcat一个java环境,能让tomcat愉快的玩耍
查看系统中是否有jdk:
$ rpm -qa | grep jdk
存在就卸了它:
$ rpm -e --nodeps 查找出来的文件名
我已经私自做主将jdk和tomcat都下载好并解压到我的网盘下,省略了进入oracle官网的一堆神奇操作
文件地址:https://pan.baidu.com/s/1bvnxjIO9RtgAE4j6nUiK5w
将文件上传到服务器上,并放置到/java目录(习惯性一个环境所需的软件归置到同一个文件夹)
第一步:其实这jdk和tomcat吧,解压完就相当于安装了
此时jdk和tomcat的文件路径:
/java/jdk8
/java/tomact7
第二步:配置环境变量:
jdk的环境变量
$ vim /etc/profile
#jdk(注释是个好习惯,不然别人不清楚这是个啥)
export JAVA_HOME=/java/jdk8
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME PATH CLASSPATH
为啥配了这一堆,我哪里知道,别人这么配的然后我用着不错,你说每天那么忙,你都没时间打游戏,还管那么多干嘛
按理说jdk环境变量都配置完了给自己庆祝下呗,jdk有个坑比问题之前可是折磨过我,你想通过java -version查看自己安装的jdk信息的时候给你报了个“bash:cannot restore segment prot after reloc: Permission denied 大致say的是->哼,小样,早着呢”
我代表星星消灭你!->解决问题:
第一步:在root用户下,修改/etc/selinux/config 文件,把SELINUX=enforcing 改成 SELINUX=disabled
第二步:进入jdk文件夹在bin下chmod 777 java
$java -version
查看不到,直接万能的重启
$reboot
查看得到,就别理它了,她又不能跟你去喝奶茶
tomcat的环境变量,这里是为了集群做准备(...手牵手一步两步三步四步往前走,看tomcat一个两个三个四个连成线)
进入tomcat所在文件夹
$cd /java
将存在的tomcat7复制一份改名tomcat7-2
$ cp -r tomcat7 tomcat7-2
这是存在两台tomcat
#tomcat两台需要各自声明自己的环境变量
##########first tomcat###########
CATALINA_BASE=/java/tomcat7
CATALINA_HOME=/java/tomcat7
TOMCAT_HOME=/java/tomcat7
export CATALINA_BASE CATALINA_HOME TOMCAT_HOME
##########second tomcat##########
CATALINA_2_BASE=/java/tomcat7-2
CATALINA_2_HOME=/java/tomcat7-2
TOMCAT_2_HOME=/java/tomcat7-2
export CATALINA_2_BASE CATALINA_2_HOME TOMCAT_2_HOME
为啥配了这一堆,我哪里知道,别人这么配的然后我用着不错,你说你每天那么忙,都没时间打游戏,还管那么多干嘛
可以启动了吗,第一台tomcat可以启动了,但是第二台将server.xml里的三个端口+1与第一台不一样就行
这个端口是供外网访问的,存在端口开放问题,确保端口可以访问,我的是阿里服务器,直接去官网安全组规则配置的8081端口(两步就解决了,第一进入服务器管理页;第二更多里面找到安全组规则克隆端口修改成自己要的端口。完成)
访问吧,可以访问成功,恭喜你成功晋级下一关卡:
配置nginx支持tomcat
到这里主要的还是思想,搞清楚逻辑可能一下子就能做到自己想要的效果,所以查看别人的文档的时候,首先自己想清楚想要做到什么样子、
关于nginx和tomcat的动静分离,因为我并不是搞java的,所以理解上根本不是那么一回事,不可避免的在思想上走了很多的弯路,其实很简单,动静分离主要是看动在哪里,静在哪里,我们整合nginx和tomcat主要的配置还是在nginx上,只要tomcat是可以访问的,nginx也是可以访问的,就可以在nginx.conf上将其整合。
具体步骤:
第一步:修改nginx.conf的配置
$ vim /java/nginx/conf/nginx.conf
红色字体为添加的:
#user nobody;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
###<这里是重定向访问的服务,通过nginx的访问,直接获取tomcat的内容
upstream test{
server 120.78.207.226:8080;
}
###>
server {
listen 80;
server_name localhost;
#动态文件处理
###<这里是进行加载tomcat的设置,tomcat支持nginx配置这两处就行
#动态加载 这是tomcatde location
location / {
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_pass http://test;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
#静态文件处理 这是nginx的location root是项目路径
location ~ .*\.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$
{
root /java/tomcat7/webapps/ROOT/projeck;
expires 30d;
}
#静态文件处理 这是nginx的location
location ~ .*\.(js|css)?$
{
root /java/tomcat7/webapps/ROOT/projeck;
expires 1h;
}
###>
location = /50x.html {
root html;
}
}
}
静态文件加载目录定义在这里可以进行访问得到,但是动态文件目录放在这里是没有意义的,直接不能解析,所以动态文件的加载目录是在tomcat的server.xml里,只需要增加一行代码放在</host>标签前面
:wq! 保存退出
第二步:修改server.xml
tomcat7:
$ vim /java/tomcat7/conf/server.xml
<Context path="" docBase="/java/tomcat7/webapps/ROOT/projeck" reloadable="true" />
tomcat7-2:
$ vim /java/tomcat7-2/conf/server.xml
<Context path="" docBase="/java/tomcat7-2/webapps/ROOT/projeck" reloadable="true" />
你也可以将项目用jar解压到一个指定文件下然后将这两处修改成指定的路径,OK的
我这里是将动态静态都放在同一个文件目录下面,但是它们工作的原理还是nginx加载静态的,tomcat加载动态的,你可以进行测试,将这两个文件的其中一个的配置路径修改到其他目录,肯定访问的文件缺少修改后的内容。看了一堆的文档然后理一堆的代码远不如一开始就明明白白,纯个人理解,仅供参考