[toc]
tomcat和ngnix在服务器上的部署 1. 部署过程中使用的命令 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1. 解压tomcat和ngnix安装包: tar -zxvf apache-tomcat-8.5 .49 .tar.gz tar -zxvf apache-tomcat-8.5 .47 .tar.gz -C /root/soft/tomcat/ 2. 动态地查看tomcat日志 tail -f catalina.out 3. 查看tomcat端口占用情况 ps -ef | grep tomcat 4. 杀死线程 kill 9 xxxxx 5. 编辑配置文件server.xml修改端口号 vi server.xml (1. i 2. 修改 3. esc 4. shift : 5 wq + enter ) 6. 启动nginx,在sbin下 ./nginx 7. 修改nginx配置nginx.conf文件后,重新加载 ./nginx -s reload
2. tomcat
3. ngnix
了解ngnix之前,先了解我们访问网站的流程,可以结合着下图理解。
我们需要明白,我们访问其服务器(linux系统),在没有提及nginx之前我们是访问的tomcat,也就是访问我们部署到tomcat项目,但是tomcat默认的端口是8080,如果单单通过域名访问我们部署的项目,此时我们要么改下tomcat的默认端口,要么通过nginx的反向代理 来实现。
ngnix的安装 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 gcc 安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc: PCRE PCRE (Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库。 注:pcre-devel是使用pcre开发的一个二次开发库。nginx也需要此库。 zlib zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库。 openssl OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。 nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。 ./configure \ --prefix=/usr/local/nginx \ --pid-path=/var /run/nginx/nginx.pid \ --lock-path=/var /lock/nginx.lock \ --error-log-path=/var /log/nginx/error.log \ --http-log-path=/var /log/nginx/access.log \ --with-http_gzip_static_module \ --http-client-body-temp-path=/var /temp/nginx/client \ --http-proxy-temp-path=/var /temp/nginx/proxy \ --http-fastcgi-temp-path=/var /temp/nginx/fastcgi \ --http-uwsgi-temp-path=/var /temp/nginx/uwsgi \ --http-scgi-temp-path=/var /temp/nginx/scgi Enter
nginx反向代理 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65 ; #nginx的反向代理 upstream tomcat8080{ server 106.15 .71 .229 :8080 ; } server { listen 80 ; server_name www.itbuild.cn; location / { #root html; proxy_pass http: #index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
nginx负载均衡 1 2 3 4 5 6 7 8 #nginx的负载均衡 upstream tomcat8080{ server 106.15 .71 .229 :8080 ; server 106.15 .71 .229 :8090 ; #在这里面添加服务器地址和端口; } #通过测试发现相同的域名和端口,访问的页面是不一样的(我在8080 端口下部署了我的项目,而8090 端口是默认的tomcat页面),通过轮询的机制访问服务器的,这样我们就可以通过nginx去实现负载均衡,配置多个服务器,在这些服务器上部署相同的项目。当然负载均衡在项目中实现并没有那么简单,因为还要涉及更改数据库的问题,这里只是简单的原理,如果有问题欢迎评论交流!