首页 > 系统相关 >Nginx

Nginx

时间:2022-10-10 22:33:27浏览次数:47  
标签:sbin nginx -- Nginx 服务器 root

一、Nginx是什么?

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供
了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第
二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于
2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、
丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。2011年6月1
日,nginx 1.0.4发布。
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件
(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存
少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较
好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘
宝等。
Nginx 是高性能的 HTTP 和反向代理的web服务器,处理高并发能力是十分
强大的,能经受高负 载的考验,有报告表明能支持高达 50,000 个并发连接
数。
Nginx支持热部署,启动简单,可以做到7*24不间断运行。几个月都不需要
重新启动

二、Nginx的反向代理(扩展:正向代理)

首先,看一张关于正向代理和反向代理的图片
在这里,用通俗易懂的方式解释一下:
正向代理: 我们平时需要访问国外的浏览器是不是很慢,比如我们要看推
特,看GitHub等等。我们直接用国内的服务器无法访问国外的服务器,或
者是访问很慢。所以我们需要在本地搭建一个服务器来帮助我们去访问。
那这种就是正向代理。(浏览器中配置代理服务器)
反向代理: 那什么是反向代理呢。比如:我们访问淘宝的时候,淘宝内部
肯定不是只有一台服务器,它的内部有很多台服务器,那我们进行访问的
时候,因为服务器中间session不共享,那我们是不是在服务器之间访问需
要频繁登录,那这个时候淘宝搭建一个过渡服务器,对我们是没有任何影
响的,我们是登录一次,但是访问所有,这种情况就是 反向代理。对我们
来说,客户端对代理是无感知的,客户端不需要任何配置就可以访问,我
们只需要把请求发送给反向代理服务器,由反向代理服务器去选择目标服
务器获取数据后,再返回给客户端,此时反向代理服务器和目标服务器对
外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器的地
址。(在服务器中配置代理服务器)

三、Nginx的负载均衡

什么是负载均衡?
负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩
展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高
网络的灵活性和可用性。
负载均衡(Load Balance)其意思就是分摊到多个操作单元上进行执行,例
如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器
等,从而共同完成工作任务。
简单来说就是:现有的请求使服务器压力太大无法承受,所有我们需要搭
建一个服务器集群,去分担原先一个服务器所承受的压力,那现在我们有
ABCD等等多台服务器,我们需要把请求分给这些服务器,但是服务器可能
大小也有自己的不同,所以怎么分?如何分配更好?又是一个问题。
Nginx给出来三种关于负载均衡的方式:
轮询法(默认方法):
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down
掉,能自动剔除。
适合服务器配置相当,无状态且短平快的服务使用。也适用于图片服务器
集群和纯静态页面服务器集群。
weight权重模式(加权轮询):
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的
情况。
这种方式比较灵活,当后端服务器性能存在差异的时候,通过配置权重,
可以让服务器的性能得到充分发挥,有效利用资源。weight和访问比率成正
比,用于后端服务器性能不均的情况。权重越高,在被访问的概率越大
ip_hash:
上述方式存在一个问题就是说,在负载均衡系统中,假如用户在某台服务
器上登录了,那么该用户第二次请求的时候,因为我们是负载均衡系统,
每次请求都会重新定位到服务器集群中的某一个,那么已经登录某一个服
务器的用户再重新定位到另一个服务器,其登录信息将会丢失,这样显然
是不妥的。
我们可以采用ip_hash指令解决这个问题,如果客户已经访问了某个服务
器,当用户再次访问时,会将该请求通过哈希算法,自动定位到该服务
器。每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服
务器,可以解决session的问题。

四、Nginx常用命令

cd /usr/local/nginx/sbin/
./nginx 启动
./nginx -s stop 停止
./nginx -s quit 安全退出
./nginx -s reload 重新加载配置文件 如果我们修改了配置文件,就需要重新加载。
ps aux|grep nginx 查看nginx进程

五、部署nginx

//关闭防火墙和selinux
//添加yum源
//创建nginx用户
[root@nginx ~]# useradd -r -M -s /sbin/nologin nginx

//安装开发工具包
[root@nginx ~]# dnf -y groups mark install 'DevelopmentTools'

//安装依赖包和工具
[root@nginx ~]# dnf -y install pcre-devel openssl openssl-devel gd-devel gcc-c++ make wget

/创建日志存放目录
[root@nginx ~]# mkdir -p /var/log/nginx
[root@nginx ~]# chown -R nginx.nginx /var/log/nginx/


/解压nginx
[root@nginx ~]# cd /usr/src/
[root@nginx src]# rz -E
rz waiting to receive.
[root@nginx src]# ls
debug kernels nginx-1.22.0.tar.gz
[root@nginx src]# tar -xf nginx-1.22.0.tar.gz -C /usr/local/
[root@nginx src]# cd /usr/local
[root@nginx local]# ls
bin games  lib  libexec    sbin  src
etc include lib64 nginx-1.22.0 share

//编译安装
[root@nginx nginx-1.22.0]# ./configure --
prefix=/usr/local/nginx
--user=nginx
--with-debug
--with-http_ssl_module
--with-http_realip_module
--with-http_image_filter_module
--with-http_gunzip_module
--with-http_gzip_static_module
--http-log-path=/var/log/nginx/access.log
--error-log-path=/var/log/nginx/error.log
[root@nginx nginx-1.22.0]# make && make install

//添加环境变量
[root@nginx nginx-1.22.0]# cd ..

[root@nginx local]# ls
bin games  lib  libexec nginx-1.22.0 share
etc include lib64 nginx  sbin     src
[root@nginx local]# cd nginx
[root@nginx nginx]# ls
conf html logs sbin
[root@nginx nginx]# cd sbin/
[root@nginx sbin]# ls
nginx
[root@nginx sbin]# echo 'export
PATH=/usr/local/nginx/sbin:$PATH' >
/etc/profile.d/nginx.sh
[root@nginx sbin]# . /etc/profile.d/nginx.sh
[root@nginx sbin]# ng
ngettext nginx  
[root@nginx sbin]# nginx

[root@nginx sbin]# ss -antl |grep 80
LISTEN 0   80         *:3306      *:*  
  
LISTEN 0   128        *:80       *:* 

标签:sbin,nginx,--,Nginx,服务器,root
From: https://www.cnblogs.com/loronoa/p/16777679.html

相关文章

  • nginx
    nginx目录nginxnginx简介nginx的特性nginx的工作原理部署nginxnginx简介nginx(发音同enginex)是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并......
  • nginx日志分析
    通过nginx日志利用shell统计日pv和uv网上记录nginx日志统计访问量的脚本的文档很多,但是看来看去实际都是一个东西,如下:1.根据访问IP统计UVawk'{print$1}'  access.lo......
  • Nginx简介
    Nginx简介1.什么是nginx?Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,公开版本1.19.6发布于2020年12月15日。Nginx(en......
  • nginx日志定时自动切割shell脚本+crontab定时任务
    vimcat_nginx_log.sh #!/bin/bash#nginx日志文件的存放路径logs_path='/app/openresty/nginx/logs'mv$logs_path/access.log$logs_path/access.$(date+%Y%m%d).log......
  • nginx启停shell脚本
    #!/bin/bash#编写nginx启动脚本#本脚本编写完成后,放置在/etc/init.d/目录下,就可以被Linux系统自动识别到该脚本#如果本脚本名为/etc/init.d/nginx,则servic......
  • nginx 图片压缩
    说明本文使用的nginx是用编译后安装的方式本文添加模块是在编译前,进行配置需要ngx_http_image_filter_module模块步骤安装nginx运行命令下载文件包wgethttp://ng......
  • 给NGINX添加几个常用的安全选项
    add_headerX-XSS-Protection1;add_headerX-Frame-OptionsSAMEORIGINalways;add_headerX-Content-Type-Options'nosniff';add_headerReferrer-Policy "no-referre......
  • 修改Nginx配置返回指定content-type的方法详解
    nginx作为一个http服务器,在功能实现方面和性能方面都表现的非常优越,下面这篇文章主要给大家介绍了关于修改Nginx配置返回指定content-type的相关资料,需要的朋友可以参考......
  • Nginx面试题
    1、请解释一下什么是Nginx?Nginx是一个web服务器和反向代理服务器,用于HTTP、HTTPS、SMTP、POP3和IMAP协议。2、请列举Nginx的一些特性。Nginx服务器的特性包括:反......
  • nginx+uwsgi 部署 django项目
    一、nginx:1.目录结构、常用命令和查杀进程:/usr/sbin/nginx:主程序/etc/nginx:存放配置文件/usr/share/nginx:存放静态文件/var/log/nginx:存放日志2.命令:servicenginxsta......