一、安装nginx
监控检查的安装:https://github.com/yaoweibin/nginx_upstream_check_module
编译参数
./configure \ --prefix=/opt/nginx \ --user=nginx \ --group=nginx \ --conf-path=/opt/nginx/conf/nginx.conf \ --error-log-path=/opt/nginx/log/error.log \ --http-log-path=/opt/nginx/log/access.log \ --http-client-body-temp-path=/opt/nginx/client/ \ --http-proxy-temp-path=/opt/nginx/proxy/ \ --http-fastcgi-temp-path=/opt/nginx/fcgi/ \ --http-uwsgi-temp-path=/opt/nginx/uwsgi \ --http-scgi-temp-path=/opt/nginx/scgi --with-pcre \ --with-http_ssl_module \ --with-http_flv_module \ --with-http_gzip_static_module \ --with-http_stub_status_module \ --with-http_realip_module \ --pid-path=/opt/nginx/nginx.pid \ --with-file-aio --with-http_image_filter_module \ --add-module=/opt/nginx_upstream_check_module-master \ # 健康检查的模块 --with-stream # tcp 协议的模块
1)准备2台服务器,环境一样,同时执行
rpm -ivh http://mirrors.aliyun.com/epel/epel-release-latest-6.noarch.rpm yum install nginx -y vim /etc/sysconfig/iptables 添加80端口 /etc/init.d/iptables restart nginx 启动 [root@nginx-server nginx]# ps -ef|grep nginx root 1439 1 0 19:48 ? 00:00:00 nginx: master process nginx nginx 1440 1439 0 19:48 ? 00:00:00 nginx: worker process root 1644 1325 0 20:10 pts/0 00:00:00 grep nginx
二、修改默认访问页
1)关键配置文件的路径
/usr/share/nginx nginx的前端配置信息 /etc/nginx nginx的相关配置脚本文件
2)nginx的重要命令
nginx -t 检查语法 nginx 启动 nginx -s reload 平滑重启
3)修改其中一个的默认主页,便于观察实现负载均衡
[root@nginx-server ~]# cat /usr/share/nginx/html/index.html I am 192.168.1.29
4)nginx的重点配置文件
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_time 65;
server {
listen 80; # 192.168.1.29:80
server_name www.abcdefg.org;
location / {
root html/www;
index index.html index.htm;
}
}
}
一个server标签则是一个标签
ip映射:192.168.1.29 www.abcdefg.org
三、修改配置文件,实现nginx代理
1)nginx 代理测试(访问外网实质指向内网服务器)。。vhosts是已经做好的代理文件
[root@admin vhosts]# cat xueying.conf server { listen 10051; server_name 110.110.110.110; charset utf8; location / { proxy_pass http://192.168.1.222; } }
1.1)代理tcp协议
stream { upstream cloudsocket { hash $remote_addr consistent; # $binary_remote_addr; server 10.0.5.14:5901 weight=5 max_fails=3 fail_timeout=30s; } server { listen 5901;#数据库服务器监听端口 proxy_connect_timeout 10s; proxy_timeout 300s;#设置客户端和代理服务之间的超时时间,如果5分钟内没操作将自动断开。 proxy_pass cloudsocket; } }
2)以nginx服务代理nginx为例
[root@nginx-server conf.d]# cat test_server.conf
upstream 192.168.1.29 {
server 192.168.1.25:80;
}
server {
listen 80;
server_name 192.168.1.29;
charset utf8;
location / {
proxy_pass http://192.168.1.29;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
访问 192.168.1.29 实质指向了192.168.1.25:80
3)以nginx代理Tomcat服务为例
[root@nginx-server conf.d]# cat test_server.conf
upstream 192.168.1.29 {
server 192.168.1.40:8080;
}
server {
listen 80;
server_name 192.168.1.29;
charset utf8;
location / {
proxy_pass http://192.168.1.29;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
访问 192.168.1.29 实质指向了192.168.1.40:8080
四、实现nginx负载均衡
1)测试情况一。nginx和tomcat的负载均衡
[root@nginx-server conf.d]# cat test_server.conf
upstream 192.168.1.29 {
server 192.168.1.25:80;
server 192.168.1.40:8080;
}
server {
listen 80;
server_name 192.168.1.29;
charset utf8;
location / {
proxy_pass http://192.168.1.29;
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 / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:6969; client_max_body_size 20m; }