在上半部分向大家介绍了nginx的常用功能模块,功能概述,以及调优(https://blog.51cto.com/13842738/2299324)
这里向大家介绍nginx在实际生产环境和项目中的应用。
案例一:Nginx+Tomcat负载均衡集群的部署
百晓生详解nginx(下)nginx在实际生产环境中的应用(该帖连载更新)_第1张图片
案例概述:京北点指科技有限公司发布V3版移联建站管理系统,该项目为JAVA语言开发web站点。
实验环境:站点服务器(tomcat1)centos6.5-1: IP:192.168.252.129
站点服务器(tomcat2)centos6.5-2: IP:192.168.252.130
代理服务器(nginx)centos6.5-3:IP:192.168.252.131
客户端:WIN7
关闭防火墙,全网互联互通状态
1.Tomcat作为应用服务器的配置
1) 配置JAVA环境
cd /opt/tomcat/
tar zxvf jdk-8u91-linux-x64.tar.gz -C /opt //安装JDK
cd /opt
mv jdk1.8.0_91/ /usr/local/java
cd /etc/profile.d/
vim java.sh //在环境变量文件夹下添加并编辑java.sh脚本
export JAVA_HOME=/usr/local/java //设置Java根目录//
export PATH=$PATH:$JAVA_HOME/bin //在PATH环境变量中添加Java根目录下的bin/子目录
百晓生详解nginx(下)nginx在实际生产环境中的应用(该帖连载更新)_第2张图片

source java.sh //java.sh脚本导入到环境变量,使其生效//
java -version //查看版本//
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b12)
OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)
2)安装配置Tomcat
cd /opt/tomcat
tar zxvf apache-tomcat-8.5.16.tar.gz -C /opt/
mv /opt/apache-tomcat-8.5.16/ /usr/local/tomcat8
cd /usr/local/tomcat8/bin/
./startup.sh //启动tomcat//
netstat -ntap | grep 8080 //监听8080端口,tomcat是否开启//
百晓生详解nginx(下)nginx在实际生产环境中的应用(该帖连载更新)
3)加入测试页面
mkdir -pv /web/webapp1 //创建web目录//
vim /web/webapp1/index.jsp
将以下内容写进文件
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>


JSP test1 page


<% out.println("Welcome to test site,http://www.test1.com");%>;


百晓生详解nginx(下)nginx在实际生产环境中的应用(该帖连载更新)_第3张图片
vim /usr/local/tomcat8/conf/server.xml 编辑Tomat的主配置文件
unpackWARs="true" autoDeploy="true">
以下为添加内容


百晓生详解nginx(下)nginx在实际生产环境中的应用(该帖连载更新)_第4张图片
//注解:docBase:web应用的文档基准目录
reloadable 设置监视“类”是否变化
path=""设置默认“类
同样方式再配置一台Tomcat应用服务器
2.配置Nginx反向代理服务器
1) 搭建Nginx编译环境
yum install pcre-devel zlib-devel openssl-devel gcc gcc-c++ -y
useradd -s /bin/false www //创建一个名为www的账号,用于运行nginx
2)编译安装nginx
cd /opt/tomcat
tar zxvf nginx-1.12.0.tar.gz -C /opt
cd /opt/nginx-1.12.0/
./configure \
--prefix=/usr/local/nginx \
--user=www \
--group=www \
--with-file-aio \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-http_flv_module \
--with-http_ssl_module
make&&make install

注释如下
./configure \
--prefix=/usr/local/nginx \ nginx所在位置
--user=www \ 指定运行的用户
--group=www \ 指定运行的组
--with-file-aio \ 启用文件修改支持
--with-http_stub_status_module \ 启用状态统计
--with-http_gzip_static_module \ 启用gzip静态压缩
--with-http_flv_module \ 启用flv模块,提供寻求内存使用基于时间的偏移量文件
--with-http_ssl_module 启用SSL模块

vim /usr/local/nginx/conf/nginx.conf
#keepalive_timeout 0;
keepalive_timeout 65;

#gzip  on;

upstream tomcat_server {                             #添加
          server 192.168.100.101:8080 weight=1;
          server 192.168.100.102:8080 weight=1;    
        }

server {
    listen       80;

.....省略
location / {
root html;
index index.html index.htm;
proxy_pass http://tomcat_server; #添加
}
百晓生详解nginx(下)nginx在实际生产环境中的应用(该帖连载更新)_第5张图片
利用以上方式,把nginx的默认站点通过proxy_pass方法代理到了设定好的tomcat_server负载均衡服务器上。
cd /usr/local/nginx/sbin
./ nginx -t //检测是否成功//
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
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ //创建软链接便于管理
nginx //启用nginx服务//
netstat -ntap | grep nginx //查看nginx服务是否启动
百晓生详解nginx(下)nginx在实际生产环境中的应用(该帖连载更新)_第6张图片
显示的是加载在后端tomcat站点服务器测试网页
案例二:ansible-playbook 手工编译安装nginx