Nginx安装配置

目录

准备工作

安装Nginx及相关组件

a、yum安装:

b、tar安装:

c、也可以yum安装pcre、zlib、openssl,tar安装nginx

启动Nginx

简单配置Nginx

Nginx配置静态web服务器

Nginx实现负载均衡(不要使用刷新按钮,在地址栏回车)

1.负载均衡策略

2.配置Nginx的负载均衡与分发策略

                  Nginx其他配置

总结 

    Nginx和Apache的区别:


准备工作


下载或使用yum安装:
wget --no-check-certificate http://www.openssl.org/source/openssl-fips-2.0.10.tar.gz
wget http://zlib.net/zlib-.2.11.tar.gz
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.40.tar.gz
wget http://nginx.org/download/nginx-1.10.2.tar.gz

安装c++编译环境,如已安装可略过
yum install gcc-c++
yum -y install gcc gcc-c++ 

查看内核版本
cat /proc/version
查看系统位数 
getconf WORD_BIT
查看gcc版本
gcc --version

安装Nginx及相关组件


https://blog.csdn.net/weixin_42389270/article/details/121553361


a、yum安装:


yum -y install pcre pcre-devel  zlib zlib-devel  openssl openssl-devel

在线安装
yum -y install gcc gcc-c++                     或者 yum install gcc-c++
yum -y install pcre pcre-devel
yum -y install zlib zlib-devel
yum -y install openssl openssl-devel

yum -y install nginx(如果使用该命令要新建配置/etc/yum.repos.d/nginx.repo)
    [nginx]     
    name=nginx repo     
    baseurl=http://nginx.org/packages/centos/7.5/$basearch/     
    gpgcheck=0     
    enabled=1


b、tar安装:


openssl安装
[root@localhost src]# tar zxvf openssl-fips-2.0.10.tar.gz
[root@localhost src]# cd openssl-fips-2.0.10
[root@localhost openssl-fips-2.0.10]# ./config && make && make install

pcre安装
[root@localhost src]# tar zxvf pcre-8.43.tar.gz
[root@localhost src]# cd pcre-8.43
[root@localhost pcre-8.40]# ./configure && make && make install

zlib安装
[root@localhost src]# tar zxvf zlib-1.2.11.tar.gz
[root@localhost src]# cd zlib-1.2.11
[root@localhost zlib-1.2.11]# ./configure && make && make install

nginx安装
[root@localhost src]# tar zxvf nginx-1.16.1.tar.gz
[root@localhost src]# cd nginx-1.16.1
[root@localhost nginx-1.10.2]# ./configure && make && make install
解压后进入到nginx文件
./configure 执行这个命令
产生一个新文件Makefiles
make 
make install
cd /usr/local/nginx/sbin 
有个命令./nginx
ps -ef|grep nginx


c、也可以yum安装pcre、zlib、openssl,tar安装nginx


启动Nginx


查看nginx安装位置
whereis nginx

进入nginx启动
cd /usr/local/nginx/sbin
./nginx
用ps -aux|grep nginx查看状态

开启端口:
#添加端口
firewall-cmd --zone=public --add-port=80/tcp --permanent(永久) 
#查看所有打开的端口:
firewall-cmd --zone=public --list-ports
#重新载入
firewall-cmd --reload

启动成功打开浏览器访问http://localhost可以看到nginx页面

如果报错:error while loading shared libraries: libpcre.so.1: cannot open shared 
a.用whereis libpcre.so.1命令找到libpcre.so.1在哪里
b.用ln -s /usr/local/lib/libpcre.so.1 /lib64 命令做个软连接就可以了
c.用./nginx启动Nginx


nginx的基本操作:
启动
/usr/local/nginx/sbin/nginx
停止/重启
/usr/local/nginx/sbin/nginx -s stop(停止)|reload(重启)
命令帮助
/usr/local/nginx/sbin/nginx -h
验证配置文件
/usr/local/nginx/sbin/nginx -t
查看状态
ps -aux | grep nginx
配置文件
vi /usr/local/nginx/conf/nginx.conf

简单配置Nginx


打开nginx配置文件,位于nginx目录下的conf文件夹下
设置几个站点:

server {listen       81;server_name  nginx.test1.com;location / {root     html;index    index.html index.htm index.jsp;}}
server {  listen       82;  server_name  nginx.test2.com;        location / {  root   html;  index  index.html index.htm;  }  }


保存退出重启nginx

Linux配置完毕了,使用另一台电脑而非安装nginx的电脑,如windows系统,配置一下host在
"C:\Windows\System32\drivers\etc"下的hosts中配置一下域名重定向:
192.168.174.131 nginx.test1.com nginx.test2.com 

然后测试一下这个域名是否正确指向了这个IP上及端口是否可以访问
telnet nginx.test1.com 81
telnet nginx.test2.com 82

没有问题可以用浏览器访问以上地址


Nginx配置静态web服务器

server { listen 80; server_name localhost;     access_log /opt/static/log/webroot/access.log; error_log  /opt/static/log/webroot/error.log; location / { root /opt/static/webroot; index index.html; } error_page 404 /404.html;    error_page 500 502 503 504 /50x.html; location = /50x.html {root html;}
}

Nginx实现负载均衡(不要使用刷新按钮,在地址栏回车)

1.负载均衡策略


1)、轮询
这种是默认的策略,把每个请求按顺序逐一分配到不同的server,如果server挂掉,能自动剔除。

upstream  cssl.com {   server   192.168.174.128:8080;    (centos6.5 tomcat8) server   192.168.174.129:8081;     (centos7.0 tomcat7)server   192.168.174.131:8080;    (centos7.5 tomcat9)  
}upstream  cssl.com {   server   192.168.158.130:8090;    server   192.168.158.131:8090;     server   192.168.158.1:8080;server   192.168.158.1:8090;    
}


如果同一服务器(ip)启动两个tomcat需要修改三个端口8080|8005|8009

2)、最少连接
把请求分配到连接数最少的server

upstream  fengzp.com {   least_conn;server   192.168.99.100:42000; server   192.168.99.101:42001;  
}

3)、权重
使用weight来指定server访问比率,weight默认是1。以下配置会是server2访问的比例是server1的两倍

upstream  fengzp.com {   server   192.168.99.100:42000 weight=1; server   192.168.99.101:42001 weight=2;  
}

4)、ip_hash
每个请求会按照访问ip的hash值分配,这样同一客户端连续的Web请求都会被分发到同一server进行处理,可以解决session的问题。如果server挂掉,能自动剔除。

upstream  fengzp.com {   ip_hash;server   192.168.99.100:42000; server   192.168.99.101:42001;  
}


ip_hash可以和weight结合使用。

2.配置Nginx的负载均衡与分发策略


 通过在upstream参数中添加的应用服务器IP后添加指定参数即可实现,如:

 upstream tomcatserver {  server 192.168.174.128:8080 weight=3;  server 192.168.174.129:8081;  }   server {  listen       80;  server_name  nginx.test.com;  location / {  proxy_pass   http://tomcatserver;              }  } 

 

    通过以上配置,便可以实现,在访问nginx.test.com这个网站时,由于配置了proxy_pass地址,所有请求都会先通过nginx反向代理服务器,在服务器将请求转发给目的主机时,读取upstream为 tomcatsever的地址,读取分发策略,配置tomcat1权重为3,所以nginx会将大部分请求发送给128服务器上的tomcat1,也就是8080端口;较少部分给tomcat2来实现有条件的负载均衡,当然这个条件就是服务器1、2的硬件指数处理请求能力。 

      
      
      
Nginx其他配置

upstream myServer {  server 192.168.72.49:9090 down;   server 192.168.72.49:8080 weight=2;   server 192.168.72.49:6060;   server 192.168.72.49:7070 backup;   
} 

1)down
    表示单前的server暂时不参与负载
2)Weight
    默认为1.weight越大,负载的权重就越大
3)max_fails
    允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误
4)fail_timeout
    max_fails 次失败后,暂停的时间
5)Backup
 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。

 
使用Nginx的高可用 
      除了要实现网站的高可用,也就是提供n多台服务器用于发布相同的服务,添加负载均衡服务器分发请求以保证在高并发下各台服务器能相对饱和的处理请求。同样,负载均衡服务器也需要高可用,以防如果负载均衡服务器挂掉了,后面的应用服务器也紊乱无法工作。
     实现高可用的方案:添加冗余。添加n台nginx服务器以避免发生上述单点故障。具体方案详见下文:keepalive+nginx实现负载均衡高可用


总结 


    负载均衡不论是各种软件或硬件(F5:2019.3.12 F5 Networks以 6.7 亿美元的价格收购Nginx)上的解决方案,主要还是将大量的并发请求按照一定的规律分发给不同的服务器处理,从而减少某台服务器的瞬时压力,提高网站的抗并发能力。nginx在负载均衡的应用之所以广泛,笔者认为这归功于它的灵活配置,一个nginx.conf文件解决大部分问题,不论是nignx创建虚拟服务器、nginx的反向代理服务器,还是本文介绍的nginx的负载均衡,几乎都在这个配置文件中进行。服务器上只负责把nginx搭好,跑起来即可。而且它本身轻量级,不需要占用服务器太多资源就可以达到较好的效果。

    
Nginx和Apache的区别:

    1. apache 相对于nginx 的优点:
        rewrite ,比nginx 的rewrite 强大
        动态页面,nginx处理动态请求是鸡肋,一般动态请求要apache去做,nginx只适合静态和反向。
        模块超多,基本想到的都可以找到
        少bug,nginx的bug相对较多超稳定

    2. nginx相对于apache的优点:
        轻量级,同样起web 服务,比apache占用更少的内存及资源 ,支持更多的并发连接,体现更高的效率,这点使 Nginx 尤其受到虚拟主机提供商的欢迎。在高连接并发的情况下,Nginx是Apache服务器不错的替代品: Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一. 能够支持高达50000 个并发连接数的响应, 这归功于Nginx为我们选择了epoll and kqueue作为开发模型.
        高并发,nginx处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能
        高度模块化的设计,编写模块相对简单,社区活跃,各种高性能模块出品迅速
        Nginx本身就是一个反向代理服务器
        负载均衡能力突出,Nginx既可以在内部直接支持 Rails 和 PHP 程序对外进行服务, 也可以支持作为 HTTP代理 服务器对外进行服务. Nginx采用C进行编写, 不论是系统资源开销还是CPU使用效率都比 Perlbal 要好很多

    3. 核心区别:apache是同步多进程模型,一个连接对应一个进程;nginx是异步的,多个连接(万级别)可以对应一个进程


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/636473.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用 Zabbix + Grafana 搭建服务器监控系统

搭建 Linux 服务器监控的目的是自己有一台阿里云服务器内存是 2g 的 , 多开一些软件就会把内存和 CPU 使用率弄的很高,最终导致服务器卡死。 所以基于这个痛点,想知道当前的 CPU 和内存是多少。阿里云 ECS 控制台中也提供对服务器的监控 , 但是为了学习…

TypeScript 函数教程 - 深入理解和使用 TypeScript

🚀 欢迎来到我的专栏!专注于Vue3的实战总结和开发实践分享,让你轻松驾驭Vue3的奇妙世界! 🌈✨在这里,我将为你呈现最新的Vue3技术趋势,分享独家实用教程,并为你解析开发中的难题。让我们一起深入Vue3的魅力,助力你成为Vue大师! 👨‍💻💡不再徘徊,快来关注…

文字的baseLine算法

使用canvas的drawText方法时候,除了要传入画笔和text还需要传入一个x坐标和y坐标。这边的x和y坐标是Baseline的坐标。 public void drawText(NonNull String text, float x, float y, NonNull Paint paint) {super.drawText(text, x, y, paint);} top:是 baseLine到…

mysql B+树索引

数据库索引用于提高查询性能和数据访问效率。索引可以加速数据的查找和筛选,减少查询的时间复杂度。数据库索引有很多类型,这里不展开也不比较,只介绍最常见一种索引结构B树索引。mysql中InnoDB引擎默认使用的就是BTREE索引。 B树数据结构 …

ubuntu设置每天定时关机

ubuntu设置每天定时关机 终端输入命令: sudo crontab -e输入密码,回车。 我这里使用nano作为编辑器,你可以选择vim。 在末尾输入以下命令: 59 23 * * * sudo -u root shutdown now设置:每天23:59分,电脑…

GitHub图床TyporaPicGo相关配置

本文作者: slience_me 文章目录 GitHub图床&Typora&PicGo相关配置1. Github配置2. picGo配置3. Typora配置 GitHub图床&Typora&PicGo相关配置 关于Typora旧版的百度网盘下载路径 链接:https://pan.baidu.com/s/12mq-dMqWnRRoreGo4MTbKg?…

SiamRPN代码研读

SiamRPN 1、概述 SiamRPN 是一种用于视觉目标跟踪的算法。它结合了 Siamese 网络(孪生网络)和 Region Proposal Network(区域提议网络)的概念。这种算法的主要目的是在视频序列中准确地跟踪单个目标。下面是它的一些关键特点&…

nestjs之provider的provide取值的几种方式

以下是根据上述每种 provide 取值方式的例子,展示在 NestJS 中如何定义和使用自定义 providers。 1. 字符串 在这个例子中,我们将使用字符串 MY_SERVICE 作为 provider 的标识符。 首先,定义 provider: import { Injectable }…

linux内核源码编译

centos7环境 iso选择 https://mirrors.tuna.tsinghua.edu.cn/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-2009.iso 自带qemu,未实测是否可用 选择编译版本2.6 下载地址 遇到的编译错误解决 yum list | grep curses yum install ncurses-devel.x86_64 -y yum i…

python爬取图片(thumbURL和html文件标签分别爬取)

当查看源代码,发现网址在thumbURL之后时,用此代码: # 当查看源代码,发现网址在thumbURL之后时,用此代码:import requestsheaders {User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121…

SQL Povit函数使用及实例

PIVOT函数常用于数据的行转列&#xff0c;同时也可以用此函数实现类似于Excel中的数据透视表的效果。 PIVOT函数 PIVOT 函数的基本语法如下&#xff1a; -- PIVOT 语法 SELECT <非透视的列>,[第一个透视的列] AS <列名称>,[第二个透视的列] AS <列名称>,.…

Spring.Shell.History内置命令覆盖

文章目录 问题解决方案覆盖方法代码yaml配置&#xff1a;指定保存历史命令文件的路径 问题 最近工作上遇到的一个小问题&#xff0c;在Spring Shell中&#xff0c;我们可以自己定义一些命令&#xff0c;已完成我们想要的功能&#xff0c;也可以使用内置命令如help、history、c…

在iPhone或iPad和Windows PC之间复制和粘贴文本的几种方法,总有一种适合你

复制和粘贴文本一直是计算机和移动设备中最酷的省时功能之一。但这个过程的工作方式因你使用的设备和操作系统而异。 在iPhone(或iPad)和Mac之间复制和粘贴相对快速而简单。还有几个选项用于在Android设备和Windows之间移动内容。但是,如果你想在iPhone和Windows之间复制和…

leetcode2809.使数组和小于等于x的最小时间

题目链接 2809. 使数组和小于等于 x 的最少时间 - 力扣&#xff08;LeetCode&#xff09; 解析思路 看不懂

旅游项目day07

目的地攻略展示 根据目的地和主题查询攻略 攻略条件查询 攻略排行分析 推荐排行榜&#xff1a;点赞数收藏数 取前十名 热门排行榜&#xff1a;评论数浏览数 取前十名 浏览数跟评论数差距过大&#xff0c;可设置不同权重&#xff0c;例如&#xff1a;将浏览数权重设置为0.3…

在微信公众号中加入ChatGPT聊天的方法

1 介绍 开源项目 "chatgpt-on-wechat" 支持通过微信公众号进行调用&#xff0c;这意味着用户可以在与公众号的交互中体验 ChatGPT。由于服务是部署在远端服务器上的&#xff0c;因此用户只需拥有一部手机&#xff0c;就可以在任何环境下与 ChatGPT 进行交流。例如&am…

linux下vsc的自动切换输入法解决方案

前言 个人使用的是Linux开发加上vsc编辑器&#xff0c;这两个东西一加中国开发者大致上就消失不见了&#xff0c;眼馋idea那个Smartinput很久了&#xff0c;赶上放假了&#xff0c;有空搞搞&#xff0c;如果后期有心情会做的通用点 安装 商店搜索SmartInputLinux安装 使用…

链表回文结构

链表回文结构 编写一个函数&#xff0c;检查输入的链表是否是回文的。 示例 1&#xff1a; 输入&#xff1a; 1->2 输出&#xff1a; false 示例 2&#xff1a; 输入&#xff1a; 1->2->2->1 输出&#xff1a; true 链表的回文结构&#xff0c;应该先找到中间节…

【Copula】最可能场景详解

基于Copula联合分布的最可能场景详解 最可能场景&#xff08;The most-likely scenario&#xff09;实例探讨参考 最可能场景&#xff08;The most-likely scenario&#xff09; 相应英文介绍原理介绍如下&#xff1a;&#xff08;出自论文J2020-Drought hazard transferabilit…

Helm Dashboard — Kubernetes 中管理 Helm 版本的 GUI

Helm Dashboard 通过提供图形用户界面&#xff0c;使在 Kubernetes 中管理 Helm 版本变得更加容易&#xff0c;这是许多开发人员所期望的。它可用于在 Kubernetes 中创建、部署和更新应用程序的版本&#xff0c;并跟踪其状态。 本文将探讨 Helm Dashboard 提供的特性和优势&am…