首页 > 系统相关 >Nginx 快速入门

Nginx 快速入门

时间:2023-01-16 17:26:31浏览次数:68  
标签:入门 nginx server Nginx html 服务器 快速 目录

一、Nginx 快速入门

1、Nginx 概述

1.1 介绍

​ Nginx 是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(IMAP/PoP3)代理服务器。其特点是占有内存少,并发能力强,事实上 nginx 的并发能力在同类型的网页服务器中表现较好,中国大陆使用 nginxl 的网站有:百度、京东、新浪、网易、腾讯、淘宝等。

​ Nginx:是由伊戈尔·赛索耶夫为俄罗斯访问量第二的 Rambler.ru 站点(俄文:PaM6nep)开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。Stable version 为稳定版。
官网:https:/nginx.org/

image

2、 Nginx 下载和安装

2.1 Linux 安装

❗注:默认使用的为 CentOS 7

  1. 安装依赖包 yum -y install gcc pcre-devel zlib-devel openssl openss1-devel

    Nginx 通过 C 语言编写的,gcc 用于编译 C 语言程序,以及其他依赖包

  2. 下载 Nginx 安装包

  3. 进入 nginx 所在目录,解压 tar -zxvf nginx-1.16.1.tar.gz [-C /usr/local/nginx 可以不写]

  4. ./configure --prefix=/usr/local/nginx (该命令不会创建目录,需要自建该目录)

  5. make && make install

    在/usr/local/nginx 目录中会生成 conf,html,logs,sbin 四个目录。

wget :下载指定网址上的资源。wget 命令不存在:通过 yum 安装该命令即可。

yum install wget

./configure :nginx-1.16.1.tar 文件夹中有一个 configure 文件,用于安装到指定目录。并不是真正安装,只是用于安装前检测一下安装环境

make && make install:编译,编译后安装。此步用于真正编译与安装

2.2 Windows 安装

2.3 Docker 安装

3、Nginx 目录结构

重点目录/文件:

目录 含义
conf/nginx.conf nginx配置文件
html 存放静态文件(html、cSS、Js等)
logs 日志目录,存放日志文件
sbin/nginx 二进制文件,用于启动、停止Nginx服务

如果想在 Linux 中以树形结果查看文件目录时,可以使用 tree。可以通过 yum install tree 安装该命令。

image

4、 Nginx 常用命令

4.1 常用命令

根据 nginx 目录所在位置使用如下命令。(此处在 sbin 文件夹下)命令前必须加./

  • 查看版本(必须加./)

    ./nginx -v

  • 检查配置文件正确性

    ./nginx -t

  • 启动和停止

    启动:./nginx
    停止:./nginx -s stop
    启动完成后查看 Nginx 进程:ps -ef | grep nginx

image

  • 重新加载配置文件

    ./nginx -s reload

4.2 将 nginx 配置到环境变量

为了简化 nginx 命令,可以将 nginx 二进制目录配到系统环境变量中

  1. 进入 /etc/profile 文件

  2. 将二进制目录配置到 PATH 中,: 用于将不同 path 分隔开。

image

  1. 让 /etc/profile 立即生效

    source /etc/profile

  2. 测试是否生效

    例如:任意目录下使用 nginx -s reload ,不再显示 command not found 则表示配置成功

5、Nginx 配置文件结构

# 全局块:和Nginxi运行相关的全局配置
#user  nobody;
worker_processes  1;
# events块:和网络连接相关的配置
events {
	# 每个worker最多处理的连接数。
    worker_connections  1024;
}
# http 块:代理、缓存、日志记录、虚拟主机配置
http {
	# http 全局块
    include       mime.types;
    default_type  application/octet-stream;
	sendfile        on;
    keepalive_timeout  65;
	# server 块
    server {
    # server 全局块
        listen       80;
        server_name  localhost;
        # location 块
        location / {
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }    
}

❗注意:http 块中可以配置多个 Server:块,每个 Serveri 块中可以配置多个 location 块。

6、具体应用

Nginx 可以用于部署静态资源,反向代理和负载均衡。

6.1 部署静态资源

Nginx 可以作为静态 wb 服务器来部署静态资源。静态资源指在服务端真实存在并且能够直接展示的一些文件,比如常见的 html 页面、css 文件、js 文件、图片、视频等资源。相对与 Tomcat,Nginx 处理静态资源的能力更加高效,所以在生产环境下,一般都会将静态资源部署到 Nginx 中。

将静态资源部署到 Nginx 非常简单,只需要将文件复制到 Nginx 安装目录下的 html 目录中即可。

# server 块
server {
# server 全局块
    listen       80; # 监听的端口
    server_name  localhost; # 服务器名称
    # location 块 
    location / { # 匹配客户端请求url
    root html; # 指定静态资源根目录,默认加载该目录下的静态资源
    index index.html index.htm; # 加载的默认首页面,第一个没有加载第二个,以此类推。
}    

6.2 反向代理

正向代理

是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。

正向代理的典型用途是为在防火墙内的局域网客户端提供访问 Internet 的途径。正向代理一般是在客户端设置代理服务器,通过代理服务器转发请求,最终访问到目标服务器。

image

反向代理

反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源,反向代理服务器负责将请求转发给目标服务器。用户不需要知道目标服务器的地址,也无须在用户端作任何设定。

image

案例:

# 当前服务位与 http://192.168.138.101 之外的服务器。
server {
# server 全局块
    listen       81; # 监听的端口
    server_name  localhost; # 服务器名称
    # location 块 
    location / { # 匹配客户端请求url
    proxy_pass http://192.168.138.101; # 反向代理配置,将请求转发到指定服务
}

6.3 负载均衡

早期的网站流量和业务功能都比较简单,单台服务器就可以满足基本需求,但是随着互联网的发展,业务流量越来越大并且业务逻辑也越来越复杂,单台服务器的性能及单点故障问题就凸显出来了,因此需要多台服务器组成应用集群,进行性能的水平扩展以及避免单点故障出现。

  • 应用集群:将同一应用部署到多台机器上,组成应用集群,接收负载均衡器分发的请求,进行业务处理并返回响应数据
  • 负载均衡器:将用户请求根据对应的负载均衡算法分发到应用集群中的一台服务器进行处理

image

负载均衡策略

名称 说明
weight 权重方式
ip_hash 依据IP分配方式
least_conn 依据最少连接方式
url_hash 依据url分配方式
fair 依据响应时间方式
轮询 默认方式

案例:

 # upstream可以定义一组服务器
upstream targetserver{ 
	server http://192.168.138.101:8080;
	server http://192.168.138.101:8081;
}
server {
# server 全局块
    listen       81; # 监听的端口
    server_name  localhost; # 服务器名称
    # location 块 
    location / { # 匹配客户端请求url
    proxy_pass http://targetserver; # 反向代理配置,将请求转发到指定服务
}  

7、踩坑!

6.1 Nginx 安装问题

问题描述:

将 nginx 安装在 /root/data/nginx/sbin/ 下,使用的默认生成的文件,未修改,启动时一切正常,

image

本地访问 nginx 时,访问被拒绝了,

image-20230115223547055

查看错误日志。

image

原因是:权限不足。

原因

启动用户和 nginx 工作用户不一致所致?

查看 启动用户和工作用户是一直的。

image

nginx.conf 改成 root 就可以了。为什么?

image

标签:入门,nginx,server,Nginx,html,服务器,快速,目录
From: https://www.cnblogs.com/9fall/p/17055910.html

相关文章

  • Spring Cache 快速入门
    一、SpringCache快速入门1、SpringCache简介什么是SpringCache?SpringCache是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能。Spr......
  • nginx&http 第四章 ngx http代理 && 转载
    Nginx访问上游服务器的流程大致分以下几个阶段:启动upstream、连接上游服务器、向上游发送请求、接收上游响应(包头/包体)、结束请求。upstream相关的两个重要数据结构ngx_......
  • 如何在几分钟内快速的学会多种外国语言和多种中文方言的教程 All In One
    如何在几分钟内快速的学会多种外国语言和多种中文方言的教程AllInOne英语、俄语、韩语、日语、意大利语、法语、泰语、越南语粤语、吴语、四川话、东北话、陕北话......
  • nginx 日志格式规范
    k8s-nginx基础镜像-格式log_formatmain'$remote_addr|$remote_user|[$time_local]|"$request"''|$status|$request_time|$body_bytes_sent|"$http_referer"''|"......
  • Nginx反向代理以及负载均衡
    场景一:同一台服务器上,通过nginx代理其他容器————例如tomcat 1、修改nginx的default.conf文件,修改后如下server{listen80;......
  • 快速构建用户xlwings环境
    一、安装python python-3.8.3-amd64.exe二、准备文件requirements.txt内容如下安装失败需要切换国内镜像源numpy==1.22.1openpyxl==3.0.5pandas==1.4.0xlrd==1.2.......
  • ubuntu18.04安装nginx并支持https和文件上传
    在ubuntu10.4server下安装nginx并支持上传和https功能环境:ubuntu18.04server在root权限下操作1.安装编译环境cdapt-yinstallmakegcclibpcre3libpcre3-devopenss......
  • nginx升级连接为websocket
    利用nginx代理wss【通讯原理及流程】wss协议实际是websocket+SSL,就是在websocket协议上加入SSL层,类似https(http+SSL)。客户端发起wss连接连到nginxnginx将wss协议的数......
  • 如何快速调试RTC?
    1、RTC介绍RTC是RealTimeClock的简称,它在硬件电路上单独供电,当系统关机时,CPU和其他外部硬件设备全部掉电,但是RTC仍然继续工作。这样就可以继续给设备提供精准的时钟,并提......
  • FreeMaker入门介绍
    一、FreeMaker介绍FreeMarker是一款免费的Java模板引擎,是一种基于模板和数据生成文本(HMLT、电子邮件、配置文件、源代码等)的工具,它不是面向最终用户的,而是一款程序员使用......