Nginx基础和配置
  x2SF4L62YFdm 2023年11月12日 46 0

1. nginx概述

1.1 序言

Nginx功能丰富,可作为HTTP服务器,也可作为反向代理服务器,邮件服务器,特点是占有内存少,并发能力强。支持FastCGI、SSL、Virtual Host、URL Rewrite、Gzip等功能。并且支持很多第三方的模块扩展。Nginx的稳定性、功能集、示例配置文件和低系统资源的消耗让他后来居上,在全球活跃的网站中有12.18%的使用比率,大约为2220万个网站。

1.2 Nginx常用功能

Nginx 可以作为静态页面的 web 服务器,同时还支持 CGI 协议的动态语言,配合 tomcat,也能实现对java程序的支持。项目中,为了加快网站的解析速度,通常动态页面和静态页面分开,使用不同的服务器来解析,降低单个服务器的工作压力。这个被称为动静分离。

Nginx基础和配置_nginx

Http代理
  • 正向代理:如果把局域网外的 Internet 想象成一个巨大的资源库,则局域网中的客户端要访问Internet,则需要通过代理服务器来访问,这种代理服务就称为正向代理。正向代理最大的特点是客户端非常明确要访问的服务器地址;服务器只清楚请求来自哪个代理服务器,而不清楚来自哪个具体的客户端;正向代理模式屏蔽或者隐藏了真实客户端信息。
  • 反向代理:主要用于服务器集群分布式部署的情况下,反向代理隐藏了服务器的信息!客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,再返回给客户端。在这个过程中,暴露的是代理服务器地址,隐藏了真实服务器 IP地址。此时,请求的来源也就是客户端是明确的,但是请求具体由哪台服务器处理的并不明确了,nginx扮演的就是一个反向代理角色。
  • 负载均衡:反向代理中,多个客户端给服务器发送的请求,nginx服务器接收请求到之后,按照一定的规则分发给了后端的业务处理服务器进行处理了。客户端发送的、nginx反向代理服务器接收到的请求数量,被称为负载量,请求数量按照一定的规则进行分发到不同的服务器处理的方式,就是一种均衡规则。所以,将服务器接收到的请求按照规则分发的过程,称为负载均衡。

通常情况下,我们在实际项目操作时,正向代理和反向代理很有可能会存在在一个应用场景中,正向代理代理客户端的请求去访问目标服务器,目标服务器是一个反向代理服务器,反向代理了多台真实的业务处理服务器。

Nginx基础和配置_nginx_02动静分离

通常我们把静态资源直接放在 Nginx 服务器上,通过Nginx 直接返回静态资源。动态资源,如tomcat,通过 Nginx 把请求代理转发至tomcat服务器上,通过tomcat来处理动态请求。

2. nginx安装

​nginx官网 ​

Nginx官网提供了三个类型的版本

Mainline version:Mainline 是 Nginx 目前主力在做的版本,可以说是开发版

Stable version:最新稳定版,生产环境上建议使用的版本

Legacy versions:遗留的老版本的稳定版

2.1 window

安装

进入选择版本下载,下载完成后解压。解压后目录结构如下:

Nginx基础和配置_nginx_03

启动

方法一:直接双击nginx目录下的nginx.exe,即可启动nginx。

方法二:cmd进入nginx目录,输入nginx回车。

访问

打开浏览器,http://localhost,返回如下界面,表示启动成功。

Nginx基础和配置_服务器_04

停止

推荐方法一:命令行进入nginx根目录,执行如下命令,停止服务器。

# nginx 根目录下执行
nginx -s stop
nginx -s quit

方法二:打开window任务管理器,找到所有的nginx进程,点击借宿进程。

2.2 Linux安装

环境准备

# 安装gcc环境
yum install gcc-c++
# 第三方的开发包
yum install -y openssl openssl-devel zlib zlib-devel pcre pcre-devel

安装nginx

下载或上传nginx源码包

#解压
tar -xvf nginx-xxxx.tar.gz -C /usr/local
# 进入nginx目录
cd /usr/local/nginx-xxxx
# 执行./configure,创建makeFile文件
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-file-aio \
--with-http_realip_module

 编译安装

make && make install

配置firewall

#查看开放的端口
firewall-cmd --list-all
# 开放服务
firewall-cmd --add-service=http –permanent
#开放端口
sudo firewall-cmd --add-port=80/tcp --permanent
# 重启防火墙
firewall-cmd –reload

启动、检查、停止

#启动
./nginx
# 检查进程
ps -aux | grep nginx
# 停止
./nginx -s stop
./nginx -s quit
# 刷新配置文件
./nginx -s reload


3.nginx配置

3.1 配置文件说明

nginx是一个功能非常强大的web服务器加反向代理服务器,使用最多的三个核心功能是反向代理、负载均衡和静态服务器。这三个功能的使用,都和nginx的配置密切相关。

nginx的配置信息主要集中在nginx.conf文件中,Nginx默认的配置文件是在安装目录下的 conf目录下,后续对 Nginx的使用基本上都是对此配置文件进行相应的修改。配置文件中,“#”开头的表示注释内容。修改过nginx.conf配置文件,需要重启Nginx服务。

Nginx基础和配置_nginx_05

默认的nginx.conf文件结构如下:

...              #main块(全局)

events { #events块
...
}

http #http块
{
... #http全局块
#include表示可以引入其他文件
server #server块
{
... #server全局块
location [PATTERN] #location块
{
...
}
location [PATTERN]
{
...
}
}
server
{
...
}
... #http全局块
}

配置选项可以分为一下几个模块:

  1. main:用于进行nginx全局信息的配置,一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。
  2. events:用于nginx工作模式的配置。配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。
  3. http:用于进行http协议信息的一些配置。可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。
  4. server:用于进行服务器访问信息的配置,配置虚拟主机的相关参数,一个http中可以有多个server。
  5. location:用于进行访问路由的配置,配置请求的路由,以及各种页面的处理情况。

3.2 动态和静态分离

一般来说,动态资源其实就是指那些后台资源,如tomcat、spring boot等程序,而静态资源就是指HTML,JavaScript,CSS,img等文件。动静分离的意思,就是将就是将网站静态资源(HTML,JavaScript,CSS,img等文件)与后台应用分开部署,提高用户访问静态代码的速度,后台应用服务器只负责动态数据请求,降低对后台应用服务器的压力。

实现方法 

目前比较流行的做法是将静态资源部署在Nginx上,而Web应用服务器只处理动态数据请求。

配置Nginx动静分离 

修改nginx.conf配置,配置location块,其中第一location个负责处理后台请求,第二个location负责处理静态资源。

worker_processes  1;

events {
worker_connections 1024;
}

http {

server {
listen 80;
server_name localhost;

#后台请求
location / {
proxy_pass http://localhost:81;
proxy_set_header X-Real-IP $remote_addr;
}

#静态资源
location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|js|css)$ {
root static;#静态资源路径
expires 30d;
}

}

}

在Nginx 下创建static目录,将图片,js, css 等文件夹拷贝到该目录下

Nginx基础和配置_反向代理_06

启动tomcat,重启Nginx,使用命令: ./nginx -s reload 重新启动Nginx,浏览器访问​​http://localhost:9000/​

3.3 代理与反向代理




【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月12日 0

暂无评论

推荐阅读
x2SF4L62YFdm
作者其他文章 更多
最新推荐 更多