请选择 进入手机版 | 继续访问电脑版
设为首页收藏本站

欣东微医疗技术论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 35|回复: 0

centos7 nginx安装与配置实现负载均衡

[复制链接]

670

主题

806

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
38570
QQ
发表于 2018-9-7 09:17:23 | 显示全部楼层 |阅读模式
nginx是一个web服务器,类似apache一样,但是比apache性能更好,更快。还可以实现反向代理,和负载均衡,常用于构建web服务集群的负载均衡。今天就来记录一下,nginx的安装与配置,实现负载均衡的作用。


首先,安装
$ wget http://dl.Fedoraproject.org/pub/ ... latest-7.noarch.rpm  
(ps:网上有一些源是不完全的,只是安装了简单的nginx,其他一些依赖并没有一起安装,导致配置文件不 全。请用这里的连接,完整可用。)
$ rpm -ivh epel-release-latest-7.noarch.rpm
$ yum install nginx (直接yum安装)


安装就这么简单方便,安装完成后,就可以使用systemctl来控制nginx的启动了
$ systemctl enable nginx (加入开机启动)
$ systemctl start nginx (开启nginx)
$ systemctl status nginx (查看状态)


然后就是设置nginx的配置文件,实现负载均衡。顾名思义就是将多个请求分发到不同的服务上,实现均衡的负载,减小单个服务的压力。
$ vi /etc/nginx/nginx.conf  (修改配置文件,全局配置文件)
-------------------------------------------------------------------------------


  • # For more information on configuration, see:



  • #   * Official English Documentation: http://nginx.org/en/docs/



  • #   * Official Russian Documentation: http://nginx.org/ru/docs/











  • user nginx;



  • worker_processes auto; (默认为自动,可以自己设置,一般不大于cpu核数)



  • error_log /var/log/nginx/error.log; (错误日志路径)



  • pid /run/nginx.pid; (pid文件路径)











  • # Load dynamic modules. See /usr/share/nginx/README.dynamic.



  • include /usr/share/nginx/modules/*.conf;











  • events {



  •     accept_mutex on; (设置网路连接序列化,防止惊群现象发生,默认为on)



  •     multi_accept on; (设置一个进程是否同时接受多个网络连接,默认为off)



  •     worker_connections 1024; (一个进程的最大连接数)



  • }











  • http {



  •     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  /var/log/nginx/access.log  main;











  •     sendfile            on;



  •     # tcp_nopush          on; (这里注释掉)



  •     tcp_nodelay         on;



  •     keepalive_timeout   65; (连接超时时间)



  •     types_hash_max_size 2048;



  •     gzip on; (开启压缩)



  •     include             /etc/nginx/mime.types;



  •     default_type        application/octet-stream;











  •     # Load modular configuration files from the /etc/nginx/conf.d directory.



  •     # See http://nginx.org/en/docs/ngx_core_module.html#include



  •     # for more information.



  •     include /etc/nginx/conf.d/*.conf;











  • # 这里设置负载均衡,负载均衡有多中策略,nginx自带的有轮询,权重,ip-hash,响应时间等粗略。



  • # 默认为平分http负载,为轮询的方式。



  • # 权重则是按照权重来分发请求,权重高的负载大



  • # ip-hash,根据ip来分配,保持同一个ip分在同一台服务器上。



  • # 响应时间,根据服务器都nginx 的响应时间,优先分发给响应速度快的服务器。



  • 集中策略可以适当组合



  •     upstream tomcat { (tomcat为自定义的负载均衡规则名)



  •         ip_hash; (ip_hash则为ip-hash方法)



  •         server 192.168.14.132:8080 weight=5; (weihgt为权重)



  •         server 192.168.14.133:8080 weight=3;











  • ## 可以定义多组规则



  • }



















  •     server {



  •         listen       80 default_server; (默认监听80端口)



  •         listen       localhost; (监听的服务器)



  •         server_name  _;



  •         root         /usr/share/nginx/html;











  •         # Load configuration files for the default server block.



  •         include /etc/nginx/default.d/*.conf;











  •         location / { ( /  表示所有请求,可以自定义来针对不同的域名设定不同负载规则 和服务)



  •   proxy_pass    http://tomcat; (反向代理,填上你自己的负载均衡规则名)



  •   proxy_redirect off; (下面一些设置可以直接复制过去,不要的话,有可能导致一些 没法认证等的问题)



  •   proxy_set_header Host $host;



  •           proxy_set_header X-Real-IP $remote_addr;



  •           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;



  •           proxy_connect_timeout 90; (下面这几个都只是一些超时设置,可不要)



  •           proxy_send_timeout 90;



  •           proxy_read_timeout 90;



  •         }



  •    # location ~\.(gif|jpg|png)$ { (比如,以正则表达式写)  



  •    #  root /home/root/images;



  •    #  }











  •         error_page 404 /404.html;



  •             location = /40x.html {



  •         }











  •         error_page 500 502 503 504 /50x.html;



  •             location = /50x.html {



  •         }



  •     }











  • # Settings for a TLS enabled server.



  • #



  • #    server {



  • #        listen       443 ssl http2 default_server;



  • #        listen       [::]:443 ssl http2 default_server;



  • #        server_name  _;



  • #        root         /usr/share/nginx/html;



  • #



  • #        ssl_certificate "/etc/pki/nginx/server.crt";



  • #        ssl_certificate_key "/etc/pki/nginx/private/server.key";



  • #        ssl_session_cache shared:SSL:1m;



  • #        ssl_session_timeout  10m;



  • #        ssl_ciphers HIGH:!aNULL:!MD5;



  • #        ssl_prefer_server_ciphers on;



  • #



  • #        # Load configuration files for the default server block.



  • #        include /etc/nginx/default.d/*.conf;



  • #



  • #        location / {



  • #        }



  • #



  • #        error_page 404 /404.html;



  • #            location = /40x.html {



  • #        }



  • #



  • #        error_page 500 502 503 504 /50x.html;



  • #            location = /50x.html {



  • #        }



  • #    }











  • }




----------------------------------------------------------------------------------


更新配置后,可以重载配置生效,不需要重启服务
$ nginx -s reload
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|eastwill.org  

GMT+8, 2018-9-22 20:54 , Processed in 0.095561 second(s), 28 queries .

Powered by Eastwill! X3.2

© 2001-2013 Eastwill Inc.

快速回复 返回顶部 返回列表