文档章节

Linux安装搭建第二篇(nginx安装与负载均衡)

颖辉小居
 颖辉小居
发布于 2017/01/24 11:30
字数 1193
阅读 53
收藏 0

下载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  auto;#nginx进程数,可以设置成auto,默认1

#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分配目标主机,同时按权重weight分配流量
    upstream app1 {
        ip_hash;
        server localhost:8080 weight=5;
        server localhost:9090 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

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

© 著作权归作者所有

颖辉小居

颖辉小居

粉丝 34
博文 192
码字总数 81120
作品 0
东城
高级程序员
私信 提问
《实战Nginx:取代 Apache的高性能Web服务器》pdf下载

目录介绍: 第1部分 基础篇 第1章 Nginx简介 1.1 常用的Web服务器简介 1.2 Nginx简介 1.3 选择Nginx的理由 1.4 Nginx与Apache、Lighttpd的综合对比 第2章 Nginx服务器的安装与配置 2.1 安装N...

绿悠悠
2010/06/17
17.3K
36
Nginx(haproxy)+keepalived+Tomcat双主高可用负载均衡

周末的时候一个正在学Linux的朋友问我,高可用怎么玩?我和他微信了将近三个小时,把Nginx和haproxy双主高可用教给他了,今天突然想把这个给写进博客里,供给那些正在学习Linux系统的朋友们,...

ImproveMyself
2018/07/31
0
0
详解Nginx + Tomcat 反向代理 负载均衡 集群 部署指南

Nginx是一种服务器软件,也是一种高性能的http和反向代理服务器,同时还是一个代理邮件服务器。也就是说,我们在Nginx上可以发布网站,可以实现负载均衡(提高应答效率,避免服务器崩溃),还...

zwtestsky
2018/05/11
0
0
.Net分布式架构(一):Nginx实现负载均衡

原文:.Net分布式架构(一):Nginx实现负载均衡 一:负载均衡简介   负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服...

杰克.陈
2017/12/07
0
0
【纯干货】CentOS7上基于nginx搭建tomcat9.0版本的负载均衡群集管理

【纯干货】CentOS7上基于nginx搭建tomcat9.0版本的负载均衡群集管理 前言 前面咱们介绍了CentOS7上的LVS负载均衡群集管理之LVS-NAT,下面就在给大家介绍一种负载均衡群集:基于nginx搭建tom...

漂移的兔子
2018/07/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Blockstack-2 :Blockstack ID注册

本篇文章主要记录Blockstack ID注册的流程; 在介绍注册流程之前,先简单的介绍一下Blockstack ID; 相对于传统互联网来说,Blockstack ID更像是统一的账号系统;即一个账号即可登录和授权所...

Riverzhou
22分钟前
1
0
面试官问:平时碰到系统CPU飙高和频繁GC,你会怎么排查?

处理过线上问题的同学基本上都会遇到系统突然运行缓慢,CPU 100%,以及Full GC次数过多的问题。当然,这些问题的最终导致的直观现象就是系统运行缓慢,并且有大量的报警。本文主要针对系统运...

Java高级架构师n
47分钟前
21
0
面向对象编程

1、类和对象 类是对象的蓝图和模板,而对象是实例;即对象是具体的实例,类是一个抽象的模板 当我们把一大堆拥有共同特征的对象的静态特征(属性)和动态特征(行为)都抽取出来后,就可以定...

huijue
今天
21
0
redis异常解决 :idea启动本地redis出现 jedis.exceptions.JedisDataException: NOAUTH Authentication required

第一次安装在本地redis服务,试试跑项目,结果却出现nested exception is redis.clients.jedis.exceptions.JedisDataException: NOAUTH Authentication required错误,真是让人头疼 先检查一...

青慕
今天
33
0
Spring 之 IoC 源码分析 (基于注解方式)

一、 IoC 理论 IoC 全称为 Inversion of Control,翻译为 “控制反转”,它还有一个别名为 DI(Dependency Injection),即依赖注入。 二、IoC方式 Spring为IoC提供了2种方式,一种是基于xml...

星爵22
今天
34
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部