windows下搭建nginx与tomcat结合,使用域名单独映射和https安全证书配置。同台服务器多个tomcat,指定不同jdk版本;热更新加载;

第一次部署,借鉴了好多资料最后做了以下整合,这里所有的信息均为测试信息,具体需要结合实际业务需要进行调整;

官网下载Nginx按照包

http://nginx.org/en/download.html

这里使用的是Nginx1.12.2;点击下载;

windows下搭建nginx与tomcat结合,使用域名单独映射和https安全证书配置。同台服务器多个tomcat,指定不同jdk版本;热更新加载;_第1张图片

下载后是已压缩文件进行解压;

windows下搭建nginx与tomcat结合,使用域名单独映射和https安全证书配置。同台服务器多个tomcat,指定不同jdk版本;热更新加载;_第2张图片

双击nginx.exe启动;在任务管理器中可查看到两个nginx服务进程;

或使用命令启动:

开始=》运行(快捷键唤醒运行:windows键+R)=》输入cmd回车进入命令环境;

windows下搭建nginx与tomcat结合,使用域名单独映射和https安全证书配置。同台服务器多个tomcat,指定不同jdk版本;热更新加载;_第3张图片

切换盘符:

>d:

进入解压目录

>cd nginx-1.12.2  (输入时可按tab进行补全,防止打错,提高效率)

查看命令帮助

>nginx -h

windows下搭建nginx与tomcat结合,使用域名单独映射和https安全证书配置。同台服务器多个tomcat,指定不同jdk版本;热更新加载;_第4张图片

验证配置文件

>nginx -t

下图出现两种情况,一个是成功,一个是报错;

提示 nginx: [emerg] bind() to 0.0.0.0:80 failed (10013:An attempt was made to access a socket in a way for bidden by its access permissions)

这里的报错是因为80端口被使用;

windows下搭建nginx与tomcat结合,使用域名单独映射和https安全证书配置。同台服务器多个tomcat,指定不同jdk版本;热更新加载;_第5张图片

在D:\nginx-1.12.2\conf中修改nginx.conf配置文件,将listen 端口修改下就可以了;

 

windows下搭建nginx与tomcat结合,使用域名单独映射和https安全证书配置。同台服务器多个tomcat,指定不同jdk版本;热更新加载;_第6张图片

 

验证成功后可以启动服务了

启动服务命令在nginx的目录下执行:

输入nginx直接回车;

>nginx

或者使用 服务命令启动

>services start nginx

启动成功的查看方式:

1.浏览器总输入:http://localhost:801  因为我是本地所有输入的是localhost ;我配置端口是801所以跟的端口号;如果默认80端口是不用输入端口号的;访问显示内容:

windows下搭建nginx与tomcat结合,使用域名单独映射和https安全证书配置。同台服务器多个tomcat,指定不同jdk版本;热更新加载;_第7张图片

2.任务管理查看:右击底部菜单栏或使用快捷键Ctrl+Shift+Esc查看;

windows下搭建nginx与tomcat结合,使用域名单独映射和https安全证书配置。同台服务器多个tomcat,指定不同jdk版本;热更新加载;_第8张图片

我是一个Java程序员,使用nginx时是为了配合tomcat使用;下面我们在进行多个tomcat配置;这里有一个需要说明下;和nginx打交道,把他的核心配置文件玩好,基本够用了,核心配置文件就是conf下的nginx.conf文件;多个tomcat如何配置呢,向下走着。。。。。。

 

配置环境介绍:

操作系统:windows2012R264位

Nginx版本:1.12.2windows版

Tomcat:tomcat8.0和tomcat8.5

 

Jdk:1.8.0.171

域名解析:一个https安全解析域名;3个普通域名;

实现目标:

  1. 每个域名访问独立tomcat;
  2. 输入域名可直接访问指定的项目;
  3. https安全证书配置及访问;

 

准备工作:一台互联网服务器;一个可解析的域名地址;一个已申请的二级域名https安全证书;

 

开始干活:

第一步:

下载并按照jdk,tomcat,nginx;

Tomcat安装包:

apache-tomcat-8.0.50-windows-x64.zip和apache-tomcat-8.5.42-windows-x64.zip

Jdk安装包:jdk-8u171-windows-x64.exe

https安全证书包*(要看清楚是nginx专用,因为它提供多个中间件的支持):

2766764_demo.xingfaup.xyz_nginx.zip

Nginx安装包:nginx-1.12.2.zip

下载安装步骤就省略了;我使用tomcat是压缩版的;安装版不习惯,也不好扩展;建议使用压缩版;

配置tomcat时需要注意,内部端口号修改;我这里使用了8080/8081/8082/8083;分别把8005/8009/8443等端口修改下,为了防止混乱我一般是根据端口号类区分如8082端口对应的配置,我会把其他端口设置成8205/8209/82443,防止报错;

再一个,tomcat部署项目对jdk有特殊需求;需要可单独进行配置;

配置方式就是在安装一个新的jdk,然后启动tomcat时做重新定向jdk目录;

在tomcat 的startup.bat文件最上方新增:

第一个set JAVA_HOME是设置jdk目录;根据不同环境可单独设定jdk版本;

第二个set CATALINA_HOME是设置tomcat目录;如果同时存在多个tomcat时必须设置;

第三个set TITLE是设置启动tomcat后窗口title提示;如果多个tomcat不好区分;个人习惯性设置下;

set JAVA_HOME=C:\Java\jdk1.8.0_171

set CATALINA_HOME=C:\apache-tomcat-8.5.42-8083

set TITLE=tomcat-8083

 

windows下搭建nginx与tomcat结合,使用域名单独映射和https安全证书配置。同台服务器多个tomcat,指定不同jdk版本;热更新加载;_第9张图片

 

Tomcat的配置结束了;下面不如正规;

真如开头所说;nginx的核心就在conf/nginx.conf文件中;我也是初步学习使用,第一次搭建,这里整理下;

第一步配置单个域名指向

第一个配置是tomcat8.5版本的8083端口服务;

在nginx.conf配置文件中新增内容如下:

 

server{

listen 80;

server_name demo3.xingfaup.xyz;

location / {

           proxy_pass http://127.0.0.1:8083;

           proxy_set_header   Host    $host;

           proxy_set_header   X-Real-IP   $remote_addr;

           proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;

       }

}

 

配置完成后,使用命令检查文件;

开始运行=》cmd回车

>d:

>cd nginx1.12.2

>nginx -t

 

windows下搭建nginx与tomcat结合,使用域名单独映射和https安全证书配置。同台服务器多个tomcat,指定不同jdk版本;热更新加载;_第10张图片

 

如果提示

nginx: the configuration file D:\nginx-1.12.2/conf/nginx.conf syntax is ok

nginx: configuration file D:\nginx-1.12.2/conf/nginx.conf test is successful

代表成功

其他的具体错误信息再行查找解决;一般报错都是配置文件错误或端口错误;

 

配置文件修改后,无需重启nginx服务,执行命令重新加载即刻生效;

>nginx -t

>nginx -s reload

先检查文件在进行重载;个人尝试的,如果不检查reload不生效;

 

这时可输入配置的域名访问下看看了

 

 

第一个代理成功了;激不激动。那么简单!

下面第二个第三个;类似;重点说说https的安全证书域名和指定项目访问;

在conf/nginx.conf配置文件中,加入下面一段话

##########################----start----################################

server{

listen 80;

server_name demo1.xingfaup.xyz;

location / {

           proxy_pass http://127.0.0.1:8081;

           proxy_set_header   Host    $host;

           proxy_set_header   X-Real-IP   $remote_addr;

           proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;

       }

}

 

server{

listen 80;

server_name demo2.xingfaup.xyz;

location / {

           proxy_pass http://127.0.0.1:8082;

           proxy_set_header   Host    $host;

           proxy_set_header   X-Real-IP   $remote_addr;

           proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;

       }

}

 

##########################----end----################################

 

 

 

 

Nginx下配置访问tomcat的https安全证书;

 

首先安装证书;

申请安全证书并下载nginx版的证书包;

在nginx安装目录中找到conf文件夹,并新建文件cert

将解压的文件pem和key拷贝到该目录下;如图所示:

需要注意的是文件名要和配置nginx.conf中设置的cert名称对应

这里文件名是:demo.xingfaup.xyz.pemdemo.xingfaup.xyz.key

 

 

然后在conf/nginx.conf配置文件中,加入下面一段话

这段话同时解决了两个文件;第一是https安全证书;第二是默认访问域名自动进入指定项目;下面提示标记的文字需要注意;这里需要设定两个location 一个是/根目录,一个是项目目录/website(我个人的项目);不然会提示无法找到;访问域名时会自动将项目名补全;

server{

        listen 80;

        listen       443 ssl;

        server_name demo.xingfaup.xyz;

        ssl_certificate      cert\demo.xingfaup.xyz.pem;

        ssl_certificate_key  cert\demo.xingfaup.xyz.key;

        ssl_session_cache    shared:SSL:1m;

        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;

        ssl_prefer_server_ciphers  on;

location / {

           proxy_pass http://127.0.0.1:8080/website;

           proxy_set_header   Host    $host;

           proxy_set_header   X-Real-IP   $remote_addr;

           proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;

       }   

location /website {

           proxy_pass http://127.0.0.1:8080/website;

           proxy_set_header   Host    $host;

           proxy_set_header   X-Real-IP   $remote_addr;

           proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;

       }

}

 

 

配置完成后生效命令:

>nginx -t

>nginx -s reload

先检查在重载;重载命令是-s ;检查命令是-t

 

到此配置结束了;

后期如果项目扩展了,可直接重启tomcat,不用重启nginx服务;可能有10秒左右的延时生效;至此配置结束;第一次配置,不足之处请留言或威信加我id号;看到后及时核实处理。

 

 

你可能感兴趣的:(nginx,nginx+tomat,nginx多域名)