Nginx

    技术2025-08-12  9

    Nginx

    1. 简介

    是一个HTTP和反向代理的服务器,特点为:占有内存少,并发能力强。专门为性能优化而开发

    1.1 代理

    1.1.1 正向代理

    客户不能直接访问网络中的资源,必须通过代理服务器来访问,这种代理就是正向代理。

    1.1.2 反向代理

    访问网站中的服务器时,不会暴露真实的服务器,暴露的是代理服务器的地址。也就是说如果访问199.0.0.1:80(随便写的)服务器时不会显示该服务器的地址而显示:www.baidu.com配置的域名(或者是代理的服务器地址)。

    1.2 负载均衡

    通过代理服务器把多个请求平均的分担到不同的服务器

    1.3 动静分离

    把动态界面和静态界面通过不同的服务器来解析。

    2. 安装

    安装pcre 查看是否安装: rpm -qa pcre

    如果出现pcre-8.32-17.el7.x86_64类似的则安装过了。 安装pcre:

    下载: wget https://netix.dl.sourceforge.net/project/pcre/pcre/8.40/pcre-8.40.tar.gz 解压: tar -zxvf pcre-8.40.tar.gz 进入目录进行编译: make 安装: make install 安装pcre报c++编译器错误: yum install gcc-c++ 安装openssl和zlib

    查看是否安装openssl:

    openssl version -a

    查看是否安装zlib:

    yum list | grep zlib* yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel 安装Nginx

    下载地址

    解压:

    tar -xzvf nginx

    进入解压好的文件下:

    ./configure make && make install 启动nginx

    进入安装目录下的sbin目录执行./nginx

    使用ps -ef | grep nginx 查看进程

    查看conf/nginx.conf 查看端口号(默认为80)

    3.常用的命令

    在操作nginx时需要先进入安装目录下的sbin文件下。

    查看版本号./nginx -v启动nginx./nginx关闭nginx ./nginx -s stop重新加载nginx./nginx -s reload

    4. nginx的配置文件

    配置文件在安装目录下的/conf/nginx.conf,由三部分组成:

    全局块 指的是nginx处理并发请求的值,值越大支持的并发就越多 worker_processes 1; events块 主要是与用户网络的连接,值最大的连接数是多少。 worker_connections 1024 http块 分为http全局块和server块。

    4. 反向代理(一)

    首先准备一个可以访问的tomcat服务器,在本机(winodws)hosts文件中进行配置域名映射地址(因为没用真正的域名),host路径C:\Windows\System32\drivers\etc在最后添加LinuxIP地址 www.xxx.com进入nginx配置文件conf/nginx.conf 修改以下配置 server { listen 80; # 把这里修改为Linux的IP地址 server_name localhost #charset koi8-r; #access_log logs/host.access.log main; location / { root html; # 添加 http://本机(windows)地址:端口号(Linux运行的tomcat的端口号) proxy_pass http://127.0.0.1:8089: index index.html index.htm; } 重启ngixn:./nginx -s stop ./nginx 如果在执行关闭nginx时出现:nginx: [alert] kill(32518, 15) failed (3: No such process),可以使用ps -ef | grep nginx查出运行的nginx的进程号,使用kill -9 进程号 去杀死nginx进程然后再启动。

    4. 反向代理(二)

    根据访问路径不同跳转到不同的端口。 进入nginx配置文件中: 新增一个server

    server { listen 80; # Linux的IP地址 server_name localhost location ~/a/ { proxy_pass http://127.0.0.1:8089: } location ~/b/ { proxy_pass http://127.0.0.1:8088: }

    配置的意思是如果访问路径中包含/a/就访问8089端口,如果有/b/就访问8088端口

    5. 负载均衡

    将请求分担到不同的服务器。 修改配置文件: 在http:下添加

    # myserver 是自己起的名字 upstream myserver{ server 服务器1:端口; server 服务器2:端口; } #再在location里面添加: proxy_pass : http://myserver;

    分配策略:

    轮询(默认):按照请求的时间顺序逐一的分配到不同服务器。down掉的服务器自动剔除。weight(权重):给每个服务器指定权重,权重越高处理的请求就越高;配置方法: upstream myserver{ server 服务:端口 weight = 1; server 服务:端口 weight = 100; } ip_hash:每个请求按照ip进行分配,每个ip固定访问一个服务器; 配置方法: upstream myserver{ ip_hash; server 服务:端口; server 服务:端口; } fair(第三方) 按照响应时间来分配,消耗时间短的优先分配; 配置方法: upstream myserver{ server 服务:端口; server 服务:端口; fair; }

    6. 动静分离

    在nginx配置文件中修改 静态文件:

    server { listen 80; # Linux的IP地址 server_name localhost; location /www/ { # 文件目录 /data/www/ root /data/; inde index.html index.htm; } location /image/ { root /data/; autoindex on; }
    Processed: 0.034, SQL: 9