Centos7.2安装Nginx实现负载平衡

Centos7.2安装Nginx实现负载平衡

大家好,又见面了,我是全栈君。

下载Nginx

到官网下载源码文件,地址:http://nginx.org/en/download.html,选择最新版本。本人下载的地址为:http://nginx.org/download/nginx-1.10.2.tar.gz,可用wget命令下载,也可以在windows系统上下载好再传到linux上。

卸载httpd

如果系统默认安装了httpd服务,卸载之。不卸载也没关系,这里只是方便默认80端口的处理。

yum -y remove httpd

解压

tar -xzvf nginx-xxxxxx.tar.gz

安装编译器和依赖库

yum install gcc gcc-c++ zlib-devel pcre-devel openssl-devel openssl-libs openssl -y

如果已经安装,就不必了

安装前配置

cd命令转到解压后的目录下。

./configure --prefix=/usr/local/nginx

这样安装时系统就会把Nginx安装到/usr/local/nginx目录下。

编译

make

安装

make install

安装完成,接下来配置环境变量以后就不用使用绝对路径来操作Nginx了:

vim /etc/profile.d/http.sh

加入以下内容:

export PATH=/usr/local/nginx/sbin:$PATH

生效配置:

source !$

启动Nginx

nginx

nginx -s 后跟stop、reload来关闭和重载nginx,直接运行nginx则启动服务。  如果启动时提示端口被占用,则需要找出被占用的进程,或者更改/usr/local/nginx/conf/nginx.conf文件里的侦听端口。

访问Nginx

在浏览器上输入 http://ip:port 如果出现“Welcome to nginx!”字样,则证明安装成功。如果访问不了,先确认防火墙是否禁止相应端口了。

负载平衡配置示例


#user  nobody;
worker_processes  2;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    accept_mutex on; #设置网路连接序列化,防止惊群现象发生,默认为on
    multi_accept on; #设置一个进程是否同时接受多个网络连接,默认为off
    worker_connections  1024;#最大连接数
}


http {
    include       mime.types;#文件扩展名与文件类型映射表,此映射表主要用于部署在本nginx上的静态资源
    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】此配置是[配置4]和[配置5]的结合
    #此配置将请求转发到两个WEB服务器,根据客户端IP分配目标主机,同时按权重分配流量
    upstream app1 {
        ip_hash;
        server 192.168.14.132:8080 weight=5;
        server 192.168.14.133:80 weight=3;
    }

    #【配置2】
    #默认负载平衡配置,nginx应用HTTP负载平衡来分发请求。
    #upstream app1 {
    #   server 192.168.14.132:8080;
    #   server 192.168.14.133:80;
    #}

    #【配置3】
    #最小连接负载平衡配置,nginx将尽量不使用繁忙的服务器,而是将新请求分发给不太忙的服务器。
    #upstream app1 {
    #   least_conn;
    #   server 192.168.14.132:8080;
    #   server 192.168.14.133:80;
    #}

    #【配置4】
    #会话持久性配置,使用ip-hash,客户端的IP地址用作散列密钥,
    #以确定应为客户端请求选择服务器组中的哪个服务器。
    #此方法确保来自同一客户端的请求将始终定向到同一服务器,除非此服务器不可用。
    #upstream app1 {
    #   ip_hash;
    #   server 192.168.14.132:8080;
    #   server 192.168.14.133:80;
    #}

    #【配置5】
    #加权负载平衡配置,通过使用服务器权重进一步影响nginx负载平衡算法。
    #未配置权重的服务器,意味着所有指定的服务器被视为对特定负载平衡方法同等资格。
    #upstream app1 {
    #   ip_hash;
    #   server 192.168.14.132:8080 weight=3;
    #   server 192.168.14.133:80 weight=2;
    #   server 192.168.14.134:80;
    #   server 192.168.14.135:80;
    #}


    server {#可配置多个server以监听不同IP和不同端口
        listen       80;#监听的端口
        server_name  localhost;#监听的服务器

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        #反斜杆代表所有连接,此配置目的是将所有连接交给名为app1的upstream代理,实现负载平衡
        location / {
            proxy_pass http://app1;
        }

        #图片文件路径,一般来说,静态文件会部署在本机以加快响应速度
        #可配置多个这样的location,满足各种需求
        location ~\.(gif|jpg|png)$ {
            root /home/root/images;
        }

        location ~\.(iso|zip|txt|doc|docx)$ {
            root /home/root/files;
        }


        #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;
        }


        # FastCGI是CGI全称是“公共网关接口”(Common Gateway Interface)
        #对于我来说,使用Tomcat代替即可,请忽略此配置。
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # 添加黑名单,禁止某某访问特定文件
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}

配置完后,记得执行以下命令生效配置

nginx -s reload

转载于:https://my.oschina.net/vshcxl/blog/818995

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/108702.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java基本开发环境搭建

    Java基本开发环境搭建

    2021年12月2日
  • app制作好后怎么上线_app如何上线到应用市场

    app制作好后怎么上线_app如何上线到应用市场自己开发一款APP上线前的步骤问题额,是这样的,一款App想要上线的话,是不需要跟国家部分打交道的。你需要的是和其他公司去打交道。比如说苹果的App,你想在APPstr上线的话,首先你要有一个开发者账号。这个账号是直接跟美国苹果公司申请的,费用是99美元一年。申请的时间大约是一个月左右。账号下来了之后,就可以上传安装包,苹果公司会审核这款App,值得一提的是,苹果公司的审核机制很严格,审核的时间…

    2022年10月30日
  • java.lang.assertionerror_java parseint

    java.lang.assertionerror_java parseintMicrosoftVisualStudioSolutionFile,FormatVersion12.00#VisualStudio15VisualStudioVersion=15.0.26730.16MinimumVisualStudioVersion=10.0.40219.1Project(“{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC…

    2022年9月8日
  • css画圆弧_css圆角样式

    css画圆弧_css圆角样式CSS3是样式表(stylesheet)语言的最新版本,它的一大优点就是支持圆角。网页设计大师NicholasZakas的最新文章,清晰易懂地解释了CSS3圆角的各个方面,非常值得学习。以下就是我翻译的中文版。=========================================CSS3圆角详解作者:NicholasZakas译者:阮一峰发表日期:2010年12月8日一、CSS3…

    2022年10月25日
  • android画廊效果的轮播图,ViewPage实现无限轮播画廊效果

    android画廊效果的轮播图,ViewPage实现无限轮播画廊效果1.效果图2.布局文件主要使用的android:clipChildren的意思:是否限制子View在其范围内。再父布局和viewpager中设置该属性,要显示三个界面,还要设置marginleft和marginRightandroid:layout_width=”match_parent”android:layout_height=”match_parent”android:clip…

    2022年4月28日
  • web图书销售管理系统_解读图书管理系统为书店带来的好处

    web图书销售管理系统_解读图书管理系统为书店带来的好处图书管理系统的出现,极大地推动了大中小型书店的发展,使书店管理工作更加高效成为书店管理的重要软件。其中图书管理系统给行业的好处更是大大方便了行业的运作。一、图书管理系统在书店中的应用,主要是为了进销存的目的,为了提高书店的效率加速发展,但没有选择合适的图书管理系统往往事与愿违。图书管理制度的选择是书店经营管理工作中的重要环节。图书管理系统,尤其是进销存功能,是书店在经营过程中对采购、销售、财务等进…

    2022年6月8日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号