ngix详解及安装和配置

时间:2025-03-17 13:00:51

简介

nginx是一个高性能的反向代理和负载均衡中间件。

优点

在性能上,Nginx占用很少的系统资源,能支持更多的并发连接,达到更高的访问效率;
在功能上,Nginx是优秀的代理服务器和负载均衡服务器;
在安装配置上,Nginx安装简单、配置灵活。

Nginx支持热部署,启动速度特别快,还可以在不间断服务的情况下对软件版本或配置进行升级,即使运行数月也无需重新启动。

热部署:应用正在运行的过程中升级软件,而不用重启软件。

功能

nginx不能直接处理java或者php等逻辑,nginx只是一个中转站(类似于路由器)。他可以把静态资源的请求直接返回给前端静态资源,
把动态资源(接口)请求转发给相应的后端,例如tomcat,这些tomcat没有nginx也是可以访问的。因为大部分情况下,这些后端程序的端口
    是放到防火墙里面的(不对外暴露)客户端想要访问这些服务,直接访问nginx的服务即可。

nginx不能直接处理java或者php等逻辑,nginx只是一个中转站(类似于路由器)!!!

反向代理

反向代理的意思是你可以访问到服务,但是你访问的服务不是真正的服务,只是nginx给你转发的服务,反向代理成功的隐藏了服务的真实ip。
    类似于qq匿名聊天,你可以和网友聊天,但是不知道那个网友真正是谁。可以有效的提高系统的安全性。

负载均衡策略

1.4.1 轮询(默认)

每个服务按照时间顺序逐一分配到不同的后端服务器上,如果后端服务器挂掉,能自动剔除。

upstream backend {
   # no load balancing method is specified for Round Robin
   server 127.0.0.1:8080;
   server 127.0.0.1:8082;
}

1.4.2 指定权重

指定轮询几率,weight和访问比率成正比,用于后端服务性能不均的情况

upstream backserver {
	server 127.0.0.1:8080 weight=10;
	server 127.0.0.1:8082 weight=100;
}

1.4.3 ip绑定

每个请求按照客户端的ip的hash结果来分配,这样每个客户端进来的请求就会进到一个服务器里面(集群环境中采用此种方案可以不用考虑session共享问题,或者服务器缓存问题)

upstream backserver {
	ip_hash;
	server 127.0.0.1:8080;
	server 127.0.0.1:8081;
}

1.4.4 最少连接

每次请求都会进到最少连接数的服务器,然后再考虑轮询。

upstream backend {
    least_conn;
    server 127.0.0.1:8080;
    server 127.0.0.1:8081;
}

nginx的安装,

windows

写一下简单的安装方法
1.下载软件
需要的软件有nginx,php,mysql(如不需要可不安装)
,上面有得下
全部解压出来
php基本不用做任何修改(下载直接解压版本的)
2.配置nginx
只需修改一行(nginx/conf/)
  fastcgi_param  SCRIPT_FILENAME  d:/nginx/html/$fastcgi_script_name;
找到大概这一行修改路径最好是绝对路径(相对路径可以自行探讨)
3.运行软件
先运行php
程序》运行》cmd
到php所在目录运行下面代码
 -b 127.0.0.1:9000 -c php\
再运行nginx
到nginx所在目录
 -c conf\
这样就ok了。

win下可以使用NPMserv更强大

by 

centos

#安装gcc 
yum install gcc-c++
#安装pcre
yum install -y pcre pcre-devel
#安装zlib
yum install -y zlib zlib-devel
#安装openssl
yum install -y openssl openssl-devel
#下载nginx
wget /download/nginx-1.18.
#解压
tar -zxvf nginx-1.18.
#进入到nginx目录
cd nginx-1.18.0
#编译
./configure
make
make install
#启动
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/
#重启
/usr/local/nginx/sbin/nginx -s reload

nginx 的配置,

一个简单的负载均衡的示例,把均衡到本机不同的端口,也可以改为均衡到不同的地址上。>

http {
: upstream myproject {
: server 127.0.0.1:8000 weight=3;
: server 127.0.0.1:8001;
: server 127.0.0.1:8002;
: server 127.0.0.1:8003;
: }

: server {
: listen 80;
: server_name ;
: location / {
: proxy_pass http://myproject;
: }
: }
}

nginx解决了什么问题

解决了因服务过多,并且过多服务都打到了单台服务器上,而单台服务器承受不住的情况

相关文章