美文网首页
Centos7编译安装nginx-1.10.3配置域名转发负载均

Centos7编译安装nginx-1.10.3配置域名转发负载均

作者: yhyok | 来源:发表于2017-03-01 11:11 被阅读270次

架构图参考如下:


Paste_Image.png

1.下载nginx


Paste_Image.png

2.解压nginx压缩包.tar.gz


Paste_Image.png

解压后得到文件夹


Paste_Image.png
进入解压目录查看
Paste_Image.png

3.安装gcc
[root@localhost nginx-1.10.3]# yum -y install gcc-c++
安装最基础的模块
[root@localhost nginx-1.10.3]# yum -y install pcre-devel
安装gzip
[root@localhost nginx-1.10.3]# yum -y install zlib-devel
以上都是在编译安装nginx时需要的一些环境

4.编辑nginx
[root@localhost nginx-1.10.3]# ./configure --prefix=/usr/local/nginx
--------{{备注:可选
yum -y install openssl openssl-devel
--prefix=/usr/local/nginx --conf-path=/usr/local/nginx/nginx.conf --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-threads --with-stream --with-stream_ssl_module --with-http_slice_module --with-mail --with-mail_ssl_module --with-file-aio --with-http_v2_module
--------}}
[root@localhost nginx-1.10.3]# make
[root@localhost nginx-1.10.3]# make install

5.启动nginx


Paste_Image.png

查看nginx是否启动


Paste_Image.png
root用户进程号1303的才是,nobody的可以删除

6.重启nginx


Paste_Image.png

7.防火墙问题
Centos7默认使用的firewall作为防火墙
[root@localhost ~]# firewall-cmd --state 查看防火墙运行状态
running
[root@localhost ~]# systemctl start firewalld.service 开启防火墙
[root@localhost ~]# systemctl stop firewalld.service 关闭防火墙
[root@localhost ~]# systemctl disable firewalld.service 彻底关闭防火墙,开机不启动
[root@localhost ~]# systemctl enable firewalld.service 开启防火墙,开机启动

启动防火墙后增加80端口
[root@localhost ~]# firewall-cmd --add-port=80/tcp
success

局域网访问http://192.168.210.100


Paste_Image.png

8.配置nginx,根据不同的域名转发到不同的主机,直接编辑nginx.conf


Paste_Image.png

路由器配置虚拟机服务器,将80端口指向nginx,也就是192.168.210.100这台主机,可将配置文件自带的server注释掉,然后添加如下内容,这样在访问www.a.com这个域名时便可转向到192.168.210.230这台主机,在访问www.b.com这个域名时转向到192.168.210.231这台主机

 upstream a-server{
        ip_hash;
        server 192.168.210.230;
        }
  server {
        listen       80;
         server_name  www.a.com;
        location / {
            proxy_pass http://a-server;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            root   html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
 upstream b-server{
        ip_hash;
        server 192.168.210.231;
        }
  server {
        listen       80;
         server_name  www.b.com;
        location / {
            proxy_pass http://b-server;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            root   html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

修改完配置文件后记得重启nginx.
重启1:
进入nginx目录
[root@localhost ~]# cd /usr/local/nginx/sbin/
[root@localhost sbin]# ls
nginx
[root@localhost sbin]# ./nginx -s reload

重启2:
当nginx已经在运行时,则需要平滑重启,步骤如下:
先查看nginx master的pid: ps aux|grep nginx|grep master
[root@localhost ~]# ps aux|grep nginx|grep master
root 1303 0.0 0.0 21932 1868 ? Ss 3月08 0:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
nginx的pid为1303,如下平滑重启命令,完成重启
[root@localhost ~]# kill -HUP 1303

开放80端口:
sudo firewall-cmd --permanent --zone=public --add-port=80/tcp
sudo firewall-cmd --permanent --zone=public --add-port=80/udp
让firewall-cmd重新加载配置:
sudo firewall-cmd --reload
再次列一下当前防火墙配置看是否开放成功:
firewall-cmd --list-all

遇到的错误及解决办法
1.nginx/logs/nginx.pid" failed (2: No such file or directory)
解决方法:
重新编译(make,make install),安装就好.

2.[emerg]mkdir()"/var/temp/nginx/client" failed(2:No such file or directory)
解决方法:
查看了一下是由于没有Nginx/client的目录.缺少对应的文件,建立相应的文件就好.

参考1:https://www.cnblogs.com/ghjbk/p/6744131.html
参考2:http://blog.csdn.net/agangdi/article/details/41087921
参考3:负载均衡

upstream myserver{
               #        ip_hash;
                server 192.168.200.21;
                server 192.168.200.22;
                server 192.168.200.23;
    }

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;
 location ~ .*\.(gif|jpg|png|htm|html|css|js|flv|ico|swf|eot|woff2|ttf|svg)(.*) {
             proxy_pass http://myserver ;
             proxy_redirect off;
             proxy_set_header Host $host;
             proxy_cache_valid 200 302 1h;
             proxy_cache_valid 301 1d;
             proxy_cache_valid any 1m;
             expires 30d;
       }

        location / {
                proxy_pass http://myserverbcs;
                proxy_set_header Host $http_host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }

Nginx的负载分发策略
Nginx 的 upstream目前支持的分配算法:
1.轮询 ——1:1 轮流处理请求(默认)
每个请求按时间顺序逐一分配到不同的应用服务器,如果应用服务器down掉,自动剔除,剩下的继续轮询。
2.权重 ——you can you up
通过配置权重,指定轮询几率,权重和访问比率成正比,用于应用服务器性能不均的情况。
3.ip_哈希算法
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个应用服务器,可以解决session共享的问题。

相关文章

  • Centos7编译安装nginx-1.10.3配置域名转发负载均

    架构图参考如下: 1.下载nginx 2.解压nginx压缩包.tar.gz 解压后得到文件夹 3.安装gcc[r...

  • Apache基于域名的虚拟主机配置

    在CentOS7上面对Apache基于域名的虚拟主机配置。使用 apt-get 方式进行的安装不同于编译安装,ap...

  • CentOS7上安装Nodejs

    CentOS7上安装Nodejs 下载源码 解压源码,并重命名源码 编译安装 配置NODE_HOME,进入prof...

  • centos7源码安装lnmp

    centos7源码安装lnmp 相关链接 源码安装 使用systemd 编译选项 my.cnf配置文件说明 下载源...

  • LNMP(wordpress)

    编译安装LNMP,并安装wordpress,配置虚拟主机,www.test.com域名实现首页访问,admin.t...

  • Centos7 编译安装PHP7

    Centos7 编译安装PHP7 编译安装的方式可以让组件等设置更加合理,但需要你对PHP的代码及各种配置非常的熟...

  • Kong反向代理UPSTREAM配置

    Kong 配置upstream负载均衡 今天的目标是配置upstream(反向代理),实现nginx的最基础负载均...

  • hive编译及安装配置

    hive编译及安装配置 一、安装mysql作为hive的元数据库 CentOS7的yum源中默认安装mysql是m...

  • Nginx 虚拟主机配置实战

    编译安装nginx并软连接 一、实践基于域名的虚拟主机 1、配置基于域名的nginx.conf内容 先使用grep...

  • flume 负载均配置

    Flume的负载配置通过slink的group来实现,每次按照一定的算法选择slink输出到指定的地方,如果文件输...

网友评论

      本文标题:Centos7编译安装nginx-1.10.3配置域名转发负载均

      本文链接:https://www.haomeiwen.com/subject/aljqgttx.html