nginx做反向代理服务器,做个集群还是很容易的,关键这个东西还是面费的,相比于F5之类的服务器,真的是很不错的了,
最近手闲,就搭个随便玩玩,以后如果自己想搞个什么东西的话,兴许还用得上。
首先先讲下linux的路径关系
Linux 的软件安装目录是也是有讲究的,理解这一点,在对系统管理是有益的
/usr:系统级的目录,可以理解为C:/Windows/,/usr/lib理解为C:/Windows/System32。
/usr/local:用户级的程序目录,可以理解为C:/Progrem Files/。用户自己编译的软件默认会安装到这个目录下。
/opt:用户级的程序目录,可以理解为D:/Software,opt有可选的意思,这里可以用于放置第三方大型软件(或游戏),当你不需要时,直接rm -rf掉即可。在硬盘容量不够时,也可将/opt单独挂载到其他磁盘上使用。
源码放哪里?
/usr/src:系统级的源码目录。
/usr/local/src:用户级的源码目录。
服务器及各版本号
三个服务器:20.4.16.9;20.4.16.10;20.4.16.35;
nginx:1.8.0(这个应该是目前最稳定的)
tomcat:7.0.61
JDK:1.6(gs测试环境不能升级)
初步打算9做nginx服务器,那两个搞个tomcat将就下,改天再做HA
先初始化安装环境
-
./configure: error: SSL modules require the OpenSSL library.
执行 yum -y install openssl openssl-devel
yum -y install gcc gcc-c++ autoconf automake make (错误忘了记录)
yum -y install zlib zlib-devel openssl openssl-devel pcre-devel(错误忘了记录)
nginx安装部署
tar -zxvf nginx-1.8.0.tar.gz -C /home/ljp/ 将其解压到指定目录,会产生 nginx-1.8.0 文件夹
到nginx-1.8.0文件夹下 修改配置文件
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi
然后 mkdir -p /var/temp/nginx 。。
异常 error: C compiler cc is not found
yum -y install gcc-c++
异常 the HTTP rewrite module requires the PCRE library*
yum -y install pcre-devel
异常 the HTTP gzip module requires the zlib library*
yum install -y zlib-devel
./configure
make & make install
然后,安装结束了,这个是解压后的目录结构
`
打开 cd /usr/local/ 这下面就有个nginx,这个就是应用程序,里面有个html,这个就相当于tomcat的webapps下的ROOT,具体的配置在conf下。
nginx.conf
#user nobody;
worker_processes 1; 这个nginx工作的时候走几个线程,看cpu吧
#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; gzip压缩
upstream tomcat_server{
server 20.4.16.10:8080 weight=10;
server 20.4.16.35:8080 weight=10;
}
server {
listen 88; 端口号
server_name localhost; 请求路径
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://tomcat_server;
root html;
index index.html index.htm;
}
#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;
}
}
对了,这个是只读文件,不让修改,菜点的可以执行chmod 777 * ,然后就可以保存了。
我修改了端口,默认是80,我修改为88了,进入/etc/sysconfig vi iptables 开启端口的防火墙
iptables配置,自己培养个好习惯##
## zookeeper
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2181 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2888 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3888 -j ACCEPT
## apache-tomcat
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
## dubbo-mpnotor
-A INPUT -m state --state NEW -m tcp -p tcp --dport 7070 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8090 -j ACCEPT
## nginx
-A INPUT -m state --state NEW -m tcp -p tcp --dport 88 -j ACCEPT
然后保存退出,service iptables stop ;关闭防火墙,service iptables start 再启动。OK!!!!
这个就是详细的配置了,嘿嘿嘿。然后进入sbin ,
查询应用 ps -ef | grep nginx
启动:./nginx ;
关闭 ./nginx -s quit
重写加载配置 ./nginx -s reload
好了,这样就已经可以负载均衡了,等有时间了,再做HA吧。有问题可以联系我。