Ubuntu安装nginx集群配置

需求背景:

企业nginx网站,erp、sap、web、www、api....集群,单一服务器不影响网站继续使用!

需求环境:

ubuntu 20.4 + nginx 1.20.0

需要技能:

熟悉ubuntu,会用日常网络指令

了解nginx原理

熟悉nginx配置,vhosts、conf、cert、ssl、upstream、configure

一、安装nginx之前,安装一下工具
sudo apt-get install libpcre3 libpcre3-dev
sudo apt-get install zlib1g-dev
sudo apt-get install openssl libssl-dev
sudo apt-get install gcc
sudo apt update
sudo apt-get install libpcre3-dev
sudo apt-get install ruby
sudo apt-get install zlib1g-dev

二、安装anginx
1、下载anginx
http://nginx.org/en/download.html


2.移动文件

mv 文件名称 目标路径

3、解压文件
tar -zxvf nginx-1.16.1.tar.gz
tar -zxvf nginx-1.16.1.tar.gz

 tar -zxvf nginx-1.20.2.tar.gz -C /usr/local/

4、进入目录
cd nginx-1.20.2/
 
5.#编译
./configure  --with-http_ssl_module
 ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
./configure 

三、遇到问题,解决问题
1、#提示没有安装的工具包

见步骤一,并且删除nginx-1.22.1,重新安装
 
#安装
make && make install

2、遇到问题1:
进入/usr/local 获取pcre编译安装包,在http://www.pcre.org/上可以获取当前最新的版本
pcre-8.38.tar.bz2 解压: tar -jxvf pcre-8.38.tar.bz2
进入解压缩目录,执行./configure。
遇到问题一:./configure: error: C compiler cc is not found
解决方案: sudo apt-get install -y gcc
遇到问题二:configure: error: You need a C++ compiler for C++ support.
解决方案:sudo apt-get install build-essential
再./configure

3、遇到问题2:
./configure: error: SSL modules require the OpenSSL library.
You can either do not enable the modules, or install the OpenSSL library
into the system, or build the OpenSSL library statically from the source
with nginx by using --with-openssl=<path> option.

sudo apt-get install openssl libssl-dev

四、配置与管理

1、查看配置

cd /usr/local/nginx

vi nginx.conf

cd /usr/local/vhosts

vi wwws_*.com.cn

2、加载配置

cd /usr/local/nginx/sbin/

./nginx -s reload

3、nginx集群

upstream xhapi.*.com.cn {
        server 172.20.0.122:8062 fail_timeout=60;
        server 172.20.0.121:8061 fail_timeout=60;
        server 172.20.0.123:8063 fail_timeout=60;
    }

    upstream shopmall.*.com.cn {
        server 172.20.0.122:8062 fail_timeout=60;
        server 172.20.0.121:8061 fail_timeout=60;
        server 172.20.0.123:8360 fail_timeout=60;
    }

    upstream www.*.com.cn {
        server 172.20.0.122:8090 fail_timeout=60;
        server 172.20.0.121:8091 fail_timeout=60;
        server 172.20.0.123:8091 fail_timeout=60;
    }

  upstream erp.*.com.cn {
        server 172.20.0.121:8070 fail_timeout=60;
        server 172.20.0.122:8070 fail_timeout=60;
        server 172.20.0.123:8070 fail_timeout=60;
        server 192.168.8.66:8070 fail_timeout=60;
    }

4、nginx 关联虚拟主机配置

在nginx.conf最后添加一行

include /usr/local/nginx/vhosts/*;

添加vhosts目录,查看目录下https://www.*.com.cn配置文件wwws_*.com.cn实例

 server {
        listen       443 ssl;
        server_name  www.derier.com.cn;
        #ssl on;
        charset UTF-8;
        #access_log  /usr/local/nginx/logs/www_*_com.access.log  json;
        access_log  /usr/local/nginx/logs/www_*_com.access.log  combined;

        root /mnt/webapps/web;

        #ssl_certificate   /usr/local/nginx/conf/cert/www/cert-1540543392281_www.*.com.cn.crt;
        #ssl_certificate_key  /usr/local/nginx/conf/cert/www/cert-1540543392281_www.*.com.cn.key;
        #ssl_session_timeout 5m;
        #ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        #ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        #ssl_prefer_server_ciphers on;

       #证书配置

        ssl_certificate   /usr/local/nginx/conf/cert/www/8209311_www.*.com.cn.pem;
        ssl_certificate_key  /usr/local/nginx/conf/cert/www/8209311_www.*.com.cn.key;
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;

        #pc自动跳转手机
        if ($http_user_agent ~* (nokia|iphone|android|samsung|htc|blackberry)) {
                rewrite  ^(.*)    https://m.derier.com.cn$1;
        }

         #配置Nginx动静分离,定义的静态页面直接从Nginx发布目录读取。
        #location ~ .*\.(htm|gif|jpg|jpeg|bmp|png|js|ico|txt|css)$ {
         #   root /derier/tomcat7_derier1/webapps/smartwx;
         #   access_log  off;
         #   #expires定义用户浏览器缓存的时间为7天,如果静态页面不常更新,可以设置更长,这样可以节省带宽和缓解服务器的压力
         #   expires      7d;
        #}

          #Nginx动静分,图片转发。
        location ~ .*\.(JPG|gif|jpg|jpeg|bmp|png|pdf|mp4)$ {
            root /mnt/images1;
            access_log  off;
            #expires定义用户浏览器缓存的时间为7天,如果静态页面不常更新,可以设置更长,这样可以节省带宽和缓解服务器的压力
            expires      7d;
        }

        location ^~ /index.html {
            return 301 https://www.*.com.cn;
        }

        location = /news/ {
           # root   html;
            proxy_set_header X-Forwarded-Host $host;
            proxy_set_header X-Forwarded-Server $host;

 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass   http://www.derier.com.cn;
        }

        location = /news/default.html {
           # root   html;
            proxy_set_header X-Forwarded-Host $host;
            proxy_set_header X-Forwarded-Server $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass   http://www.derier.com.cn;
        }

        location / {
           # root   html;
            index  views/login.html;
            proxy_set_header X-Forwarded-Host $host;
            proxy_set_header X-Forwarded-Server $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass   http://www.derier.com.cn;
        }

        location = /50x.html {
            root   html;
        }

    }                                  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Linux集群部署Nginx是一种在多个服务器上通过集群方式来部署和管理Nginx服务器的方法。 首先,为了实现Linux集群部署Nginx,我们需要在不同的服务器上安装Linux操作系统,并确保网络连接正常。 接下来,我们可以选择一台服务器作为主服务器(Master),并在其他服务器上作为从服务器(Slave)。主服务器将负责管理和控制整个集群,而从服务器将接收来自主服务器的指令并执行。 在每个服务器上,我们需要下载和安装Nginx软件,并进行必要的配置。对于主服务器,我们还需要安装配置一些额外的软件来实现负载均衡和数据同步。 然后,我们需要通过配置Nginx来实现负载均衡。可以使用Round-Robin算法或基于权重的负载均衡算法来分配来自客户端的请求。这将确保在各个服务器之间均衡地分配负载,提高整个集群的性能和可靠性。 此外,我们还可以通过主从复制来实现数据的同步和备份。主服务器将通过将数据复制到从服务器来确保数据的一致性和可用性。如果主服务器发生故障,从服务器可以接管工作,从而保持系统的稳定性。 最后,为了确保集群的高可用性,我们可以使用监控工具来监视服务器的状态和运行状况。这将帮助我们及时发现并解决可能的故障和问题,保持整个集群的稳定和可靠运行。 总的来说,通过在Linux集群上部署Nginx,我们可以实现对高负载和高流量的Web应用程序的可靠和高效的部署和管理。这不仅提高了系统的性能和可靠性,还降低了成本和维护的复杂度。 ### 回答2: Linux集群部署nginx是一种常见的做法,它可以确保高可用性和负载均衡。下面是一些关于此过程的常见步骤: 1. 选择合适的Linux操作系统版本:可以选择一种稳定且常用的Linux发行版,如Debian、Ubuntu或CentOS等。 2. 安装配置Linux集群环境:确保所有集群节点都安装了相同的操作系统和软件包。设置网络通信和共享存储等必需的配置。 3. 安装配置nginx:在集群的每个节点上安装nginx软件包,并根据需求进行配置。主要配置包括监听端口、文档根目录、虚拟主机等。 4. 配置负载均衡:使用负载均衡软件(如HAProxy或Nginx)将流量均匀分发给后端的nginx服务器。可以使用简单的轮询算法或更复杂的算法来实现。 5. 启动和管理nginx集群:确保所有节点上的nginx服务都正常启动,并使用系统服务管理工具来启动、停止和重启nginx进程。 6. 监控和故障排除:使用适当的工具和技术监控nginx集群的性能和可用性。在出现故障时,进行适当的故障排除和修复。 7. 安全配置配置防火墙、访问控制、HTTPS等安全设置,确保nginx集群的安全性。 总之,通过Linux集群部署nginx可以提高网站的可用性和性能。它允许在多个节点上平衡负载,防止单点故障,并提供灵活的配置选项和安全性。但是,在部署过程中需要牢记安全性、监控和故障排除等关键方面。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jekc868

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值