您的位置:首页 > 运维架构 > Tomcat

Nginx+Tomcat集群配置[一]

2018-01-02 08:55 363 查看

Nginx+Tomcat集群配置[一]

前言

本人亲测有效,希望各位作为参考,希望可以帮助你们,大佬请绕过!

什么是Nginx

- nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器;nginx可以作为一个HTTP服务器进行网站的发布处理,另外nginx可以作为反向代理进行负载均衡的实现。

-

1.安装

安装很简单,直接点击这里,下载nginx-1.8.1,(中间的那个是windows版本的),下载后解压就可以了,启动直接点击解压后文件中nginx.exe,访问nginx,在浏览器中输入http://localhost,访问页面,出现下列页面标示访问成功!

由于我的nginx是在windows下安装的,关闭比较麻烦,可以写一个脚本来管理,桌面新建nginx.bat文件,然后用编辑器打开,添加一下内容

====================================================
@echo off
rem 当前bat的作用

echo ==================begin========================

cls
SET NGINX_PATH=D:
SET NGINX_DIR=D:\nginx-1.13.8\
color 0a
TITLE Nginx Perssion

CLS

:MENU

ECHO. * nginx list *
tasklist|findstr /i "nginx.exe"

ECHO.
ECHO. [1] Start Nginx
ECHO. [2] Close Nginx
ECHO. [3] Restart Nginx
ECHO. [4] quit
ECHO.

ECHO. please input you num:
set /p ID=
IF "%id%"=="1" GOTO start
IF "%id%"=="2" GOTO stop
IF "%id%"=="3" GOTO restart
IF "%id%"=="4" EXIT
PAUSE

:start
call :startNginx
GOTO MENU

:stop
call :shutdownNginx
GOTO MENU

:restart
call :shutdownNginx
call :startNginx
GOTO MENU

:shutdownNginx
ECHO.
ECHO.close Nginx......
taskkill /F /IM nginx.exe > nul
ECHO.OK,close all nginx proess
goto :eof

:startNginx
ECHO.
ECHO.start Nginx......
IF NOT EXIST "%NGINX_DIR%nginx.exe" ECHO "%NGINX_DIR%nginx.exe" not exit

%NGINX_PATH%

cd "%NGINX_DIR%"

IF EXIST "%NGINX_DIR%nginx.exe" (
echo "start '' nginx.exe"
start "" nginx.exe
)
ECHO.OK
goto :eof


2.nginx的配置文件:nginx.conf

- 配置文件的组成结构:main(全局配置),events(工作模式配置),http(http设置),server(服务器主机设置),结构大致类似下面这样

main# 全局配置

events {# nginx工作模式配置

}

http {# http设置
....

server {# 服务器主机配置
....
location {# 路由配置
....
}

location path {
....
}
}

server {
....

location {
....
}
}

upstream name {# 负载均衡配置
....
}
}


3.功能

- 3.1静态HTTP代理

- 首先,Nginx是一个HTTP服务器,可以将服务器上的静态文件(如HTML、图片)通过HTTP协议展现给客户端。配置:

#使用的用户和组
#user  nobody;
worker_processes  1;#工作进程的个数,一半与计算机的cpu核数一致

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
#指定错误日志存放的路径,错误日志记录级别可选项为:[debug|info|notice|warn|error|crit],默认是crit,记录的日志数量从crit到debug,由少到多。

#指定pid存放的路径
#pid        logs/nginx.pid;

events {
worker_connections  1024;#单个进程的最大连接数(最大连接数=连接数*进程数)
}

##############################################################################

#遵循http协议的服务器全局设置
http {
include       mime.types;#文件扩展名与文件类型映射表
default_type  application/octet-stream;#默认文件类型

sendfile     on;

keepalive_timeout  65;#长连接超时时间,单位是秒

#gzip  on;#启用Gizp压缩

#upstream设置,设置代理服务器(负载均衡池),默认的负载均衡方式是轮询,另外一种是ip_hash
upstream  netitcast.com {  #服务器集群名字
#ip_hash
server    47.100.52.177:8888  weight=2;#服务器配置 weight是权重的意思,权重越大,分配的概率越大。
server    127.0.0.1:8080      weight=1;
}

#当前的Nginx的配置
server {
listen       80;#监听80端口,可以改成其他端口
server_name  localhost;########当前主机的域名

location / {
# 配置你的访问路径,可以是相对路径也可以是绝对路径
#root hyh;
# 配置首页,以下顺序匹配
#index index.html,index.htm;

#映射地址,如果请求为localhost:80则交给netitcast.com的Nginx集群来处理
proxy_pass http://netitcast.com; #与前面的服务器集群名字相同
#映射地址跳转方式
proxy_redirect default;

}

# 用于设置如果出现指定的HTTP错误状态码,则返回指定的url页面
error_page  404              /404.html;

# redirect server error pages to the static page /50x.html
#
error_page   500 502 503 504  /50x.html;
location = /50x.html {
root   html;
}
}

}


3.2 反向代理服务器

-什么是反向代理?

客户端本来可以直接通过HTTP协议访问某网站应用服务器,网站管理员可以在中间加上一个Nginx,客户端请求Nginx,Nginx请求应用服务器,然后将结果返回给客户端,此时Nginx就是反向代理服务器。

配置如下:

#核心配置和上面一样,只是改变了location中的内容
server {
listen       80;#监听80端口,可以改成其他端口
server_name  localhost;########当前主机的域名

location / {
proxy_pass http://127.0.0.1:8080;#我本地的tomcat }

# 用于设置如果出现指定的HTTP错误状态码,则返回指定的url页面
error_page  404              /404.html;

# redirect server error pages to the static page /50x.html
#
error_page   500 502 503 504  /50x.html;
location = /50x.html {
root   html;
}
}
}


-3.3负载均衡

当网站访问量非常大,网站站长开心赚钱的同时,也摊上事儿了。因为网站越来越慢,一台服务器已经不够用了。于是将同一个应用部署在多台服务器上,将大量用户的请求分配给多台机器处理。同时带来的好处是,其中一台服务器万一挂了,只要还有其他服务器正常运行,就不会影响用户使用。Nginx可以通过反向代理来实现负载均衡。

配置:

#使用的用户和组
#user  nobody;
worker_processes  1;#工作进程的个数,一半与计算机的cpu核数一致

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
#指定错误日志存放的路径,错误日志记录级别可选项为:[debug|info|notice|warn|error|crit],默认是crit,记录的日志数量从crit到debug,由少到多。

#指定pid存放的路径
#pid        logs/nginx.pid;

events {
worker_connections  1024;#单个进程的最大连接数(最大连接数=连接数*进程数)
}

##############################################################################

#遵循http协议的服务器全局设置
http {
include       mime.types;#文件扩展名与文件类型映射表
default_type  application/octet-stream;#默认文件类型

sendfile     on;

keepalive_timeout  65;#长连接超时时间,单位是秒

#gzip  on;#启用Gizp压缩

#upstream设置,设置代理服务器(负载均衡池),默认的负载均衡方式是轮询,另外一种是ip_hash
upstream  netitcast.com {  #服务器集群名字
#ip_hash
server    47.100.52.177:8888  weight=2;#服务器配置 weight是权重的意思,权重越大,分配的概率越大。
server    127.0.0.1:8080      weight=1;
}

#当前的Nginx的配置
server {
listen       80;#监听80端口,可以改成其他端口
server_name  localhost;########当前主机的域名

location / {
#映射地址,如果请求为localhost:80则交给netitcast.com的Nginx集群来处理
proxy_pass http://netitcast.com; #与前面的服务器集群名字相同
#映射地址跳转方式
proxy_redirect default;
}

# 用于设置如果出现指定的HTTP错误状态码,则返回指定的url页面
error_page  404              /404.html;

# redirect server error pages to the static page /50x.html
#
error_page   500 502 503 504  /50x.html;
location = /50x.html {
root   html;
}
}
}


最后使用地址栏问localhost:80,出现远程端的Tomcat和本地端的Tomcat首页!



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  tomcat nginx