nginx and tomcat
nginx
nginx功能:反向代理,负载均衡。
本质上nginx只是一个代理服务器 负责转发用户的请求给真正的server,nginx代理了很多不同的真正的server。
比如nginx监听80端口,转发给tomcat 8080.
优点:
- 安全性
- 访问性能
看起来麻烦,但可以把静态页面交给nginx管理。
tomcat管理动态的。
nginx安装
是编译安装。
安装命令:
yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
nginx下载地址:https://nginx.org/download/
下载“nginx-1.16.1.tar.gz”,移动到/usr/local/下。
解压
tar -zxvf nginx-1.9.9.tar.gz
##进入nginx目录
cd nginx-1.9.9
配置
./configure --prefix=/usr/local/nginx
make
make
make install
OK,现在可以执行make 了。
执行make、make install命令
测试是否安装成功
cd到刚才配置的安装目录/usr/loca/nginx/
./sbin/nginx -t
错误信息:
nginx: [alert] could not open error log file: open() “/usr/local/nginx/logs/error.log” failed (2: No such file or directory)
2016/09/13 19:08:56 [emerg] 6996#0: open() “/usr/local/nginx/logs/access.log” failed (2: No such file or directory)
原因分析:nginx/目录下没有logs文件夹
解决方法:
mkdir logs
chmod 700 logs
正常情况的信息输出:
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
启动nginx
cd /usr/local/nginx/sbin
./nginx //启动nginx
在浏览器中输入服务器的ip地址,如:192.168.1.12
很不幸,打不开链接。下面进行原因排查:
nginx -t # 验证配置文件;无法验证其它文件的情况
nginx -s reload # 重新加载;可以重启其它文件启动的情况
nginx -s stop # 快速停止
nginx -s quit # 正常停止
nginx -V # 查看版本
nginx -c conf/web01.conf # 使用另一个配置文件
说明服务器的80端口是打不开的。
因为我使用的linux系统版本是CentOS7,所以可以在服务器中执行如下命令来验证》》
firewall-cmd --query-port=80/tcp
显然80端口没有开启。
下面我们开启80端口:
firewall-cmd --add-port=80/tcp --permanent
#重启防火墙
systemctl restart firewalld
–permanent #永久生效,没有此参数重启后失效
刷新浏览器
====================== 分割线 ====================
配置完毕!
2、配置nginx开机自启动
vim /etc/rc.d/rc.local
tomcat
比如tomcat才是真正的server。
nginx配置反向代理的tomcat
# cd /usr/local/nginx/conf
修改 nginx.conf
下图中, proxy_pass 配置的就是代理的tomcat。
配置后,重启nginx。
这样浏览器访问nginx 80端口,本质上是访问了tomcat 8000端口(注此处tomcat端口8080修改为了8000)
重启nginx方式:
# pkill -9 nginx
# cd /usr/local/nginx/sbin/
# ./nginx
在nginx.conf中
修改 server/location,添加
proxy_pass http://localhost:8080/
当浏览器访问80端口时,就会代理到8080。