三步配置轻量级服务器nginx

这里写目录标题

  • 一 nginx及其应用场景
    • 1.什么是nginx
    • 2.应用场景背诵
  • 二 nginx的配置安装
    • 1.选择nginx版本
    • 2. 安装配置环境
    • 3.安装nginx
    • 4.启动nginx
  • 三 访问

一 nginx及其应用场景

1.什么是nginx

一款轻量级的Web服务器,反向代理服务器,以及电子邮件代理服务器
主要有三个优点:

  • 占用内存少,并发能力强
  • Nginx为性能优化开发,能支持五千个左右的并发响应
  • (Tomcat只有三百到五百)
  • Nginx支持热部署,可以在不间断服务情况下对软件进行升级(不要用关闭服务器)

2.应用场景背诵

  • 静态http服务器,可以独立提供静态http服务
  • 虚拟主机:在一台服务器虚拟出多个网站
  • 反向代理:网站访问量到达一定程度后,单台服务器已经无法完成所有的访问量,需要用nginx实现反向代理
  • 负载均衡:每个服务器承担一定的资源,不会出现一个服务器承担过多的服务导致宕机,而另一个服务器闲置的情况下

二 nginx的配置安装

1.选择nginx版本

下载nginx, 官方网站:http://nginx.org/en/download.html
我们使用的版本是1.17.8版本。
Nginx在Linux下安装,只提供了源代码,所以我们需要进行编译.

2. 安装配置环境

需要安装gcc的环境。执行命令:

yum install gcc-c++
[root@localhost ~]# yum install gcc-c++
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.cqu.edu.cn
 * extras: mirrors.cqu.edu.cn
 * updates: mirrors.njupt.edu.cn
base                                                                                                         | 3.6 kB  00:00:00     
extras                                                                                                       | 2.9 kB  00:00:00     
updates                                                                                                      | 2.9 kB  00:00:00     
updates/7/x86_64/primary_db                                                                                  |  20 MB  00:00:05     
正在解决依赖关系

  

安装PCRE依赖
nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库

[root@localhost ~]# yum install -y pcre pcre-devel
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.cqu.edu.cn
 * extras: mirrors.cqu.edu.cn
 * updates: mirrors.njupt.edu.cn
软件包 pcre-8.32-17.el7.x86_64 已安装并且是最新版本
正在解决依赖关系
--> 正在检查事务
---> 软件包 pcre-devel.x86_64.0.8.32-17.el7 将被 安装
--> 解决依赖关系完成

nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库。

[root@localhost ~]# yum install -y zlib zlib-devel
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.cqu.edu.cn
 * extras: mirrors.cqu.edu.cn
 * updates: mirrors.njupt.edu.cn
正在解决依赖关系
--> 正在检查事务
---> 软件包 zlib.x86_64.0.1.2.7-18.el7 将被 升级
---> 软件包 zlib.x86_64.0.1.2.7-21.el7_9 将被 更新
---> 软件包 zlib-devel.x86_64.0.1.2.7-21.el7_9 将被 安装
--> 解决依赖关系完成

OpenSSL 是一个强大的安全套接字层密码库,nginx不仅支持http协议,还支持https,所以需要在linux安装openssl库。

[root@localhost ~]# yum install -y openssl openssl-devel
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.cqu.edu.cn
 * extras: mirrors.cqu.edu.cn
 * updates: mirrors.njupt.edu.cn
正在解决依赖关系
--> 正在检查事务
---> 软件包 openssl.x86_64.1.1.0.2k-19.el7 将被 升级
---> 软件包 openssl.x86_64.1.1.0.2k-26.el7_9 将被 更新
--> 正在处理依赖关系 openssl-libs(x86-64) = 1:1.0.2k-26.el7_9,它被软件包 1:openssl-1.0.2k-26.el7_9.x86_64 需要
---> 软件包 openssl-devel.x86_64.1.1.0.2k-26.el7_9 将被 安装
--> 正在处理依赖关系 krb5-devel(x86-64),它被软件包 1:openssl-devel-1.0.2k-26.el7_9.x86_64 需要
--> 正在检查事务
---> 软件包 krb5-devel.x86_64.0.1.15.1-55.el7_9 将被 安装
--> 正在处理依赖关系 libkadm5(x86-64) = 1.15.1-55.el7_9,它被软件包 krb5-devel-1.15.1-55.el7_9.x86_64 需要
--> 正在处理依赖关系 krb5-libs(x86-64) = 1.15.1-55.el7_9,它被软件包 krb5-devel-1.15.1-55.el7_9.x86_64 需要
--> 正在处理依赖关系 libverto-devel,它被软件包 krb5-devel-1.15.1-55.el7_9.x86_64 需要
--> 正在处理依赖关系 libselinux-devel,它被软件包 krb5-devel-1.15.1-55.el7_9.x86_64 需要
--> 正在处理依赖关系 libcom_err-devel,它被软件包 krb5-devel-1.15.1-55.el7_9.x86_64 需要
--> 正在处理依赖关系 keyutils-libs-devel,它被软件包 krb5-devel-1.15.1-55.el7_9.x86_64 需要
---> 软件包 openssl-libs.x86_64.1.1.0.2k-19.el7 将被 升级
---> 软件包 openssl-libs.x86_64.1.1.0.2k-26.el7_9 将被 更新
--> 正在检查事务
---> 软件包 keyutils-libs-devel.x86_64.0.1.5.8-3.el7 将被 安装
---> 软件包 krb5-libs.x86_64.0.1.15.1-50.el7 将被 升级
---> 软件包 krb5-libs.x86_64.0.1.15.1-55.el7_9 将被 更新
---> 软件包 libcom_err-devel.x86_64.0.1.42.9-19.el7 将被 安装
---> 软件包 libkadm5.x86_64.0.1.15.1-55.el7_9 将被 安装
---> 软件包 libselinux-devel.x86_64.0.2.5-15.el7 将被 安装
--> 正在处理依赖关系 libsepol-devel(x86-64) >= 2.5-10,它被软件包 libselinux-devel-2.5-15.el7.x86_64 需要
--> 正在处理依赖关系 pkgconfig(libsepol),它被软件包 libselinux-devel-2.5-15.el7.x86_64 需要
---> 软件包 libverto-devel.x86_64.0.0.2.5-4.el7 将被 安装
--> 正在检查事务
---> 软件包 libsepol-devel.x86_64.0.2.5-10.el7 将被 安装
--> 解决依赖关系完成

把它放到root目录下
在这里插入图片描述

3.安装nginx

tar -xvf nginx-1.17.8.tar
[root@localhost ~]# ll
总用量 6420
-rw-------. 1 root root    1234 415 20:38 anaconda-ks.cfg
drwxrwxrwx. 2 root root      20 418 17:45 for
-rw-r--r--. 1 root root 6569984 424 20:51 nginx-1.17.8.tar
[root@localhost ~]# tar -xvf nginx-1.17.8.tar
nginx-1.17.8/
nginx-1.17.8/auto/
nginx-1.17.8/conf/
nginx-1.17.8/contrib/
nginx-1.17.8/src/
nginx-1.17.8/configure
nginx-1.17.8/LICENSE
nginx-1.17.8/README
nginx-1.17.8/html/
nginx-1.17.8/man/
nginx-1.17.8/CHANGES.ru
nginx-1.17.8/CHANGES

查看解压的包

[root@localhost ~]# ll
总用量 6420
-rw-------. 1 root root    1234 415 20:38 anaconda-ks.cfg
drwxrwxrwx. 2 root root      20 418 17:45 for
drwxr-xr-x. 8 1001 1001     158 121 2020 nginx-1.17.8
-rw-r--r--. 1 root root 6569984 424 20:51 nginx-1.17.8.tar

4 进入目录内

[root@localhost ~]# cd nginx-1.17.8
[root@localhost nginx-1.17.8]# ll
总用量 764
drwxr-xr-x. 6 1001 1001   4096 424 20:54 auto
-rw-r--r--. 1 1001 1001 301950 121 2020 CHANGES
-rw-r--r--. 1 1001 1001 460775 121 2020 CHANGES.ru
drwxr-xr-x. 2 1001 1001    168 424 20:54 conf
-rwxr-xr-x. 1 1001 1001   2502 121 2020 configure
drwxr-xr-x. 4 1001 1001     72 424 20:54 contrib
drwxr-xr-x. 2 1001 1001     40 424 20:54 html
-rw-r--r--. 1 1001 1001   1397 121 2020 LICENSE
drwxr-xr-x. 2 1001 1001     21 424 20:54 man
-rw-r--r--. 1 1001 1001     49 121 2020 README
drwxr-xr-x. 9 1001 1001     91 424 20:54 src

执行命令 configure,生成mikefile文件

./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

搞定配置

Configuration summary
  + using system PCRE library
  + OpenSSL library is not used
  + using system zlib library

  nginx path prefix: "/usr/local/nginx"
  nginx binary file: "/usr/local/nginx/sbin/nginx"
  nginx modules path: "/usr/local/nginx/modules"
  nginx configuration prefix: "/usr/local/nginx/conf"
  nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
  nginx pid file: "/var/run/nginx/nginx.pid"
  nginx error log file: "/var/log/nginx/error.log"
  nginx http access log file: "/var/log/nginx/access.log"
  nginx http client request body temporary files: "/var/temp/nginx/client"
  nginx http proxy temporary files: "/var/temp/nginx/proxy"
  nginx http fastcgi temporary files: "/var/temp/nginx/fastcgi"
  nginx http uwsgi temporary files: "/var/temp/nginx/uwsgi"
  nginx http scgi temporary files: "/var/temp/nginx/scgi"

生成了一个makefile文件

[root@localhost nginx-1.17.8]# ll
总用量 768
drwxr-xr-x. 6 1001 1001   4096 424 20:54 auto
-rw-r--r--. 1 1001 1001 301950 121 2020 CHANGES
-rw-r--r--. 1 1001 1001 460775 121 2020 CHANGES.ru
drwxr-xr-x. 2 1001 1001    168 424 20:54 conf
-rwxr-xr-x. 1 1001 1001   2502 121 2020 configure
drwxr-xr-x. 4 1001 1001     72 424 20:54 contrib
drwxr-xr-x. 2 1001 1001     40 424 20:54 html
-rw-r--r--. 1 1001 1001   1397 121 2020 LICENSE
-rw-r--r--. 1 root root    355 424 21:01 Makefile
drwxr-xr-x. 2 1001 1001     21 424 20:54 man
drwxr-xr-x. 3 root root    125 424 21:01 objs
-rw-r--r--. 1 1001 1001     49 121 2020 README
drwxr-xr-x. 9 1001 1001     91 424 20:54 src

make
开始编译

[root@localhost nginx-1.17.8]# make
make -f objs/Makefile
make[1]: 进入目录“/root/nginx-1.17.8”
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/nginx.o \
	src/core/nginx.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_log.o \
	src/core/ngx_log.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_palloc.o \
	src/core/ngx_palloc.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_array.o \
	src/core/ngx_array.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_list.o \
	src/core/ngx_list.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_hash.o \
	src/core/ngx_hash.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_buf.o \
	src/core/ngx_buf.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_queue.o \
	src/core/ngx_queue.c

正式安装

make install 

安装到了usr的local目录下

cp conf/scgi_params \
	'/usr/local/nginx/conf/scgi_params.default'
test -f '/usr/local/nginx/conf/nginx.conf' \
	|| cp conf/nginx.conf '/usr/local/nginx/conf/nginx.conf'
cp conf/nginx.conf '/usr/local/nginx/conf/nginx.conf.default'
test -d '/var/run/nginx' \
	|| mkdir -p '/var/run/nginx'
test -d '/var/log/nginx' \
	|| mkdir -p '/var/log/nginx'
test -d '/usr/local/nginx/html' \
	|| cp -R html '/usr/local/nginx'
test -d '/var/log/nginx' \
	|| mkdir -p '/var/log/nginx'
make[1]: 离开目录“/root/nginx-1.17.8”
[root@localhost nginx-1.17.8]# 

查看安装

[root@localhost nginx-1.17.8]# cd /usr/local
[root@localhost local]# ll
总用量 0
drwxr-xr-x. 2 root root  6 411 2018 bin
drwxr-xr-x. 2 root root  6 411 2018 etc
drwxr-xr-x. 2 root root  6 411 2018 games
drwxr-xr-x. 2 root root  6 411 2018 include
drwxr-xr-x. 2 root root  6 411 2018 lib
drwxr-xr-x. 2 root root  6 411 2018 lib64
drwxr-xr-x. 2 root root  6 411 2018 libexec
drwxr-xr-x. 5 root root 42 424 21:04 nginx
drwxr-xr-x. 2 root root  6 411 2018 sbin
drwxr-xr-x. 5 root root 49 415 20:34 share
drwxr-xr-x. 2 root root  6 411 2018 src

4.启动nginx

[root@localhost local]# cd nginx/
[root@localhost nginx]# ll
总用量 4
drwxr-xr-x. 2 root root 4096 424 21:04 conf
drwxr-xr-x. 2 root root   40 424 21:04 html
drwxr-xr-x. 2 root root   19 424 21:04 sbin

sbin目录下放了一些可执行文件
执行启动命令

root@localhost nginx]# cd sbin/
[root@localhost sbin]# ll
总用量 3792
-rwxr-xr-x. 1 root root 3881416 424 21:04 nginx
[root@localhost sbin]# ./nginx

查看进程是否启动了

[root@localhost sbin]# ps aux | grep nginx
root       4737  0.0  0.0  20564   616 ?        Ss   21:11   0:00 nginx: master process ./nginx
nobody     4738  0.0  0.0  21000  1316 ?        S    21:11   0:00 nginx: worker process
root       4741  0.0  0.0 112824   980 pts/0    R+   21:13   0:00 grep --color=auto nginx

三 访问

在浏览器输入自己的虚拟机ip+端口号
在这里插入图片描述

./nginx -s stop 关闭
./nginx -s reload 重启

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/18569.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

java获取resources路径的方法

我们在写程序的时候,有时候会发现代码不能正常运行,出现提示异常的问题,这就说明我们的代码没有执行完,也就是没有 resource,其实遇到这种情况,我们只需要把代码重新执行一遍即可。 在 java中是可以实现 re…

实验六 触发器与存储过程

实验六 触发器与存储过程 目录 实验六 触发器与存储过程 1、SQL触发器:删除学生数据题目代码题解 2、SQL触发器:创建成绩表插入触发器题目代码题解 3、 SQL存储过程:查询订单题目代码题解 4、SQL存储过程:建立存储过程&#xff0c…

浅析S32K324的时钟树

S32K3XX系列的时钟树梳理 如下图为S32K3XX系列的时钟树图: 一、时钟源 时钟源说明FIRC快速内部RC时钟源SIRC慢速内部RC时钟源FXOSC快速外部晶振时钟源SXOSC慢速外部晶振时钟源 S32K3系列的mcu有4个时钟源如上表。 二、FIRC(快速内部RC时钟源&#…

【A200】 TX1核心 JetPack4.6.2版本如何修改DTB文件测试全部SPI

大家好,我是虎哥,很长时间没有发布新内容,主要是这段时间集中精力,研究DTB设备树的修改,以适配不同载板,同时也是专门做了一个TX1&TX2核心,双网口,可以使用SPI 扩展CAN接口的载板…

Actuators + jolokia

Actuators + jolokia Jolokia造成的XXE漏洞 首先我们查看我们当前环境http://x.x.x.x/jolokia/list地址,是否存在reloadByURL这个方法, 这个方法是造成RCE的关键。因为logback组件提供的reloadByURL操作使我们可以从外部URL重新加载日志配置 创建logback.xml和file.dtd文件…

【神经网络】tensorflow实验9--分类问题

1. 实验目的 ①掌握逻辑回归的基本原理,实现分类器,完成多分类任务; ②掌握逻辑回归中的平方损失函数、交叉熵损失函数以及平均交叉熵损失函数。 2. 实验内容 ①能够使用TensorFlow计算Sigmoid函数、准确率、交叉熵损失函数等&#xff0c…

tomcat集群下的session共享和负载均衡

环境 操作系统:windows tomcat1:Apache Tomcat/7.0.52(8085) tomcat2:Apache Tomcat/7.0.52(8086) jre:1.7.0_80 nginx:nginx-1.20.1(8070) redis…

人工智能洗稿-免费自媒体洗稿工具

文字洗稿 文字洗稿是指通过修改、重组、删除、替换等手段对文本进行优化、清理和调整,以达到改善文章质量、增加独特性和提高可读性的目的。文字洗稿是自媒体行业的一个重要需求,尤其是在批量撰写文章或需要大量修改文本的情况下。文字洗稿分为自动洗稿…

如何用ChatGPT搭建品牌文本体系?(品牌名+slogan+品牌故事)

该场景对应的关键词库(26个): 品牌名、奶茶、中文名、情感联想度、饮料、价值观/理念、发音、slogan、产品功能导向、行业性质导向、经营理念导向、消费者观念导向、口语化、修辞手法、品牌故事、创始人初心品牌故事、里程碑事件故事、产品初…

Intellij中使用Spotless 格式化代码

Spotless简介 在一些大型项目或开源项目,由于开发人员太多,导致各个代码格式不统一。会让整体项目的代码可读性变差。统一代码格式使用maven中的Spotless插件就是不错的选择。 Spotless 是一个代码格式化工具,它有以下功能: 支…

第6章 静态代理

第6章 静态代理 把所有静态资源的访问改为访问nginx,而不是访问tomcat,这种方式叫静态代理。因为nginx更擅长于静态资源的处理,性能更好,效率更高。 ​ 所以在实际应用中,我们将静态资源比如图片、css、html、js等交…

helm和chart

Helm helm是Kubernetes 应用的包管理工具,主要用来管理 Charts,类似Linux系统的yum。Helm Chart 是用来封装 Kubernetes 原生应用程序的一系列 YAML 文件。可以在你部署应用的时候自定义应用程序的一些 Metadata,以便于应用程序的分发。 he…

keil移植linux(makefile)

文章目录 运行环境:1.1 freeRTOS_LED工程移植1)修改cubeMX配置2)setting设置3)launch设置4)修改makefile5)修改代码6)实验效果 运行环境: ubuntu18.04.melodic 宏基暗影骑士笔记本 stm32f427IIH6 stlink 9-24v可调电源 robomaster A 板 1.1 freeRTOS_L…

第二章——进程与线程(上)

上船不思岸上人,下船不提船上事 文章目录 2.1.1 进程的概念,组成,特征知识总览进程的概念进程的组成——PCB程序是如何运行的进程的组成进程的特征知识回顾 2.1.2 进程的状态与转换,进程的组织知识总览创建态,就绪态运…

yolov5 8系列 labelme数据标注 并生成训练数据集

yolov5 8系列 labelme数据标注 数据集生成终极教程 一.数据集准备二.转换为yolo 数据集 一.数据集准备 创建一个data 文件夹在data文件夹下创建一个images 文件夹将所有图片数据放入images文件夹下 使用labelme标注数据 python环境下使用 pip install labelme 安装labelme在c…

缓存击穿,穿透,雪崩

一、缓存击穿 单个热点key,在不停的扛着大并发,在这个key失效的瞬间,持续的大并发请求就会击破缓存,直接请求到数据库 解决方案 使用互斥锁(Mutex Key),只让一个线程构建缓存,其他…

Golang中的运算符

目录 运算符 算术运算符 代码案例: 关系运算符 代码案例: 逻辑运算符 代码案例: 位运算符 代码案例: 赋值运算符 代码案例: 其他运算符 运算符 算术运算符 Go语言中的算术运算符包括加、减、乘、除和取模…

4.2和4.3、MAC地址、IP地址、端口

计算机网络等相关知识可以去小林coding进行巩固(点击前往) 4.2和4.3、MAC地址、IP地址、端口 1.MAC地址的简介2.IP地址①IP地址简介②IP地址编址方式③A类IP地址④B类IP地址⑤C类IP地址⑥D类IP地址⑧子网掩码 3.端口①简介②端口类型 1.MAC地址的简介 …

Mac电脑配置李沐深度学习环境[pytorch版本]使用vscode

文章目录 第一步 M1芯片安装Pytorch环境安装Miniforge创建虚拟环境安装Pytorch 第二步 下载李沐Jupyter文件第三步 配置vscode参考 第一步 M1芯片安装Pytorch环境 安装Miniforge Mac打开终端(Mac电脑如何启动终端?打开启动台,搜索终端即可&…

Python 中 随机数 random库 学习与使用

python中的随机数应用大体包含,随机整数、随机浮点数 和 获取随机数序列三类。 一. 随机整数 1.1 随机整数,包含上下限(闭区间) randint(a, b):随机选取 [a, b] 之间的一个整数,随机整数包含a 和 b&#…