1.准备阶段
安装前先安装(1)gcc gcc-c++编译环境(2)pcre pcre-dev (3)zlib(一般都有操作gzip的包)(4)openSSL
2.安装nginx
本文以CENTOS7为搭建环境,以Nginx1.10.1(stable稳定版)为Nginx服务器,首先上官网下载nginx
$ wget -c https://nginx.org/download/nginx-1.10.1.tar.gz
# 解压
$ tar -xzvf
nginx-1.10.1.tar.gz
# 进入
nginx-1.10.1
$ cd
nginx-1.10.1
# 配置,测试用默认配置就可以了
$ ./configrue
(如果需要指定nginx的安装目录则加上
--prefix=/usr/local/nginx
,默认是安装在/usr/local/nginx
)
(r如果需要利用nginx搭建Https服务,需要安装ssl模块,加上参数
--with-http_ssl_module)./configrue
# 编译安装
$ make && make install
# 安装完后,因为使用的的默认配置,所以,安装目录会在/usr/local/nginx下
# 查看是否安装成功
$ cd /usr/local/nginx/sbin/
$ ./nginx -v
# 会出现版本号说明安装成功
# 启动
$ cd /usr/local/nginx/sbin/
$ ./nginx
# 重载配置文件重启
./nginx -s reload
# 关闭nginx
# 快速关闭
$ ./nginx -s stop
# 正常有序的关闭
$ ./nginx -s quit
#nginx默认是80端口.浏览器输入http://your nginx server ip:80
(注意事项一:编译安装完nginx后,nginx的最终目录变为了
),之前make前的目录只是一份源码,安装完就没什么用了,更改nginx文件切记要在/usr/local/nginx/
/usr/local/nginx/里更改,例如更改nginx.conf,nginx启动时不指定配置文件的地址的话,默认就是/usr/local/nginx/conf/nginx.conf
(注意事项二:默认情况下linux是没有开放端口的,需要开启相应的端口,centos下默认是使用firewalld防火墙,还有一种是iptables防火墙,先弄清楚你服务器防火墙的类型才能确认如何开放端口)
二。nginx分发请求到分布式tomcat
这里我在虚拟机Linux中搭建了一个tomcat,ip地址为192.168.0.105:8080,在MAC主机搭建了一个tomcat,ip地址为192.168.0.101:8083
2个tomcat都搭建完毕后,做点小修改,用于分辨一个客户端请求到底是被分发到了哪个tomcat中,打开mac-tomcat的root文件夹,更改Index.jsp,在<body>元素中加入一行<p> this is a tomcat server in my mac </p>,OK。tomcat处理完毕
现在还是回到nginx服务器,直接贴我的nginx.conf配置文件,目录为:$ cd /usr/local/nginx/conf/nginx.conf(注意修改完配置文件记得重启nginx)
[root@localhost conf]# cat nginx.conf
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
#这是我新加的部分1——BEGIN
#服务器的集群
upstream do1shoje.com { #服务器集群名字
server 192.168.0.101:8083 weight=2;#服务器配置 weight是权重的意思,权重越大,分配的概率越大。
server 192.168.0.105:8080 weight=1;
}
#这是我新加的部分1——END
server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root html; index index.html index.htm;
#这是我新加的部分2——BEGIN
proxy_pass http://do1shoje.com;
#表示如果客户端请求的地址是nginx服务器的地址192.168.0.105:80,则交给名称为do1shoje.com的集群来处理,do1shoje是集群名,可自定义,但必须与上面
upstream do1shoje.com 定义的集群名一致。。。注意因为nginx和tomcat都装在centos中,
#两者的地址为:nginx:192.168.0.105:80;tomcat:192.168.0.105:8080
#这是我新加的部分2——END
}
#error_page 404 /404.html; # redirect se