第一次部署,借鉴了好多资料最后做了以下整合,这里所有的信息均为测试信息,具体需要结合实际业务需要进行调整;
官网下载Nginx按照包
http://nginx.org/en/download.html
这里使用的是Nginx1.12.2;点击下载;
下载后是已压缩文件进行解压;
双击nginx.exe启动;在任务管理器中可查看到两个nginx服务进程;
或使用命令启动:
开始=》运行(快捷键唤醒运行:windows键+R)=》输入cmd回车进入命令环境;
切换盘符:
>d:
进入解压目录
>cd nginx-1.12.2 (输入时可按tab进行补全,防止打错,提高效率)
查看命令帮助
>nginx -h
验证配置文件
>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端口被使用;
在D:\nginx-1.12.2\conf中修改nginx.conf配置文件,将listen 端口修改下就可以了;
验证成功后可以启动服务了
启动服务命令在nginx的目录下执行:
输入nginx直接回车;
>nginx
或者使用 服务命令启动
>services start nginx
启动成功的查看方式:
1.浏览器总输入:http://localhost:801 因为我是本地所有输入的是localhost ;我配置端口是801所以跟的端口号;如果默认80端口是不用输入端口号的;访问显示内容:
2.任务管理查看:右击底部菜单栏或使用快捷键Ctrl+Shift+Esc查看;
我是一个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个普通域名;
实现目标:
- 每个域名访问独立tomcat;
- 输入域名可直接访问指定的项目;
- 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
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
如果提示
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.pem和demo.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号;看到后及时核实处理。