iis服务器助手广告广告
返回顶部
首页 > 资讯 > 服务器 >Nginx三种安装方式
  • 222
分享到

Nginx三种安装方式

linuxnginx运维服务器centos 2023-09-01 15:09:22 222人浏览 薄情痞子
摘要

Nginx快速安装 官方提供三种版本下载 ​ Mainline version:主线版本,也叫开发版。最新版本,但没经过大量测试 ​ Stable version:稳定版本,通过大量的测试,相对比较稳

Nginx快速安装

官方提供三种版本下载

​ Mainline version:主线版本,也叫开发版。最新版本,但没经过大量测试

​ Stable version:稳定版本,通过大量的测试,相对比较稳定的版本,生产环境使用该版本

​ Legacy version:往期的稳定版

Nginx 软件安装的方式有很多种

  1. 源码编译=>Nginx (1.版本随意 2.安装复杂 3.升级繁琐)

    ​ 需要编译:配置、编译、安装
    ​ 优点:可以自定义路径;路径统一,方便迁移,方便升级
    ​ 缺点:配置选项复杂,安装时间较长,程序用户及执行程序的路径都需要自己手动完成

  2. epel源=>Nginx (1.版本较低 2.安装简单 )(epel红帽修改过一些配置文件,不建议使用)

  3. 官方源=>Nginx (1.版本较新 2.安装简单 )

三种安装方式都需要安装运行环境

 yum install -y GCc gcc-c++ autoconf pcre pcre-devel zlib-devel openssl-devel make automake wget Httpd-tools vim tree make automake wget httpd-tools vim tree

1.epel源安装

  1. 部署阿里云epel源

    # wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

    安装nginx

    yum install -y nginx

2.官方源安装(不要使用最新版)

建议从http://nginx.org/packages/下载所需版本的rpm包,使用yum localinstall -y 来安装

配置 nginx yum 源(必须使用官方源)

# vim /etc/yum.repos.d/nginx.repo[nginx-stable]name=nginx stable repobaseurl=http://nginx.org/packages/Centos/$releasever/$basearch/gpgcheck=1enabled=1gpgkey=https://nginx.org/keys/nginx_signing.keymodule_hotfixes=true

安装Nginx服务

#yum install nginx -y

········································

下载配置环境

yum install -y yum-utils

配置nginx yum 源

yum install -y yum-utilscat > /etc/yum.repos.d/nginx.repo <

安装nginx 服务

yum install -y nginxsystemctl start nginx systemctl enable nginx

3.编译安装

下载源码

#wget http://nginx.org/download/nginx-1.20.1.tar.gz

解压源码包

#tar xf nginx-1.20.1.tar.gz

配置安装环境(程序用户,安装路径等)

#1.创建用户和组,且不创建用户的家目录#groupadd nginx -g 888#useradd -u 888 -g 888 -s /sbin/nologin -M nginx#2.创建安装目录默认安装到/usr/local/nginx/,建议安装到指定目录,目录路径根据公司要求来定义#mkdir -p /app

进入解压目录,执行配置脚本进行预编译,生成Makefile

# cd nginx-1.20.1/# ./configure --prefix=/app/nginx-1.20.1 --user=nginx --group=nginx#相关选项用法:./configure --help #查看配置参数 --prefix= #指定nginx安装路径 --user= #指定nginx程序用户 --group= #指定nginx程序用户组 --with-**= #指定编译模块 --without-**= #指定不编译模块 --add-module= #指定第三方模块

编译安装

# make && make install#检查安装好的目录结构#tree /app/nginx-1.20.1/app/nginx-1.20.1/├── conf├── html├── logs└── sbin

做软链接

#ln -s /app/nginx-1.20.1 /app/nginx

配置环境变量

#写入启动配置文件#echo "export PATH=$PATH:/app/nginx/sbin" >> /etc/profile#马上生效#source /etc/profile

Nginx命令

nginx #启动nginx。 等价于systemctl start nginx -s reopen #重启Nginx。 等价于systemctl restart nginx -s reload #重新加载Nginx配置文件,然后以优雅的方式重启Nginx。 等价于systemctl reload nginx -s stop #强制停止Nginx服务。 等价于systemctl stop nginx -s quit #优雅地停止Nginx服务(即处理完所有请求后再停止服务) -?,-h #打开帮助信息 -v #显示版本信息并退出 -V #显示版本和配置选项信息,然后退出 -T #检测配置文件是否有语法错误,转储并退出 -q #在检测配置文件期间屏蔽非错误信息 -p prefix #设置前缀路径(默认是:/usr/share/nginx/) -c filename #设置配置文件(默认是:/etc/nginx/nginx.conf) -g directives #设置配置文件外的全局指令

Nginx配置文件

Nginx 主配置文件 /etc/nginx/nginx.conf 是一个纯文本类型的文件,整个配置文件是以区块的形式组织的。一般,每个区块以一对大括号{}来表示开始与结束。

​ 1.CoreModule 核心模块

​ 2.EventModule 事件驱动模块

​ 3.HttpCoreModule http内核模块

需了解扩展项

CoreModule层下可以有Event、HTTP

HTTP模块层允许有多个Server层, Server主要用于配置多个网站

Server层又允许有多个Location, Location主要用于定义网站访问路径

CoreModule核心模块

user nginx; #Nginx进程所使用的用户worker_processes 1; #Nginx运行的work进程数量(建议与CPU数量一致或auto)error_log /var/log/nginx/error.log warn #Nginx错误日志存放路径pid /var/run/nginx.pid #Nginx服务运行后产生的pid进程号

events 事件模块

events {  worker_connections 1024 //每个worker进程支持的最大连接数 use epoll; //事件驱动模型, epoll默认}

http内核模块

//公共的配置定义在http{}http { //http层开始  include mime.types; //引入MIME类型映射表文件 default_type application/octet-stream; //浏览器检测文件类型 access_log /var/log/nginx/access.log main //访问日志 sendfile on; //启用零复制机制 keepalive_timeout 65; //保持连接超时时间65s  //使用Server配置网站, 每个Server{}代表一个网站(简称虚拟主机) server { listen 80; //监听端口, 默认80 server_name localhost; //提供服务的域名或主机名  //控制网站访问路径 location / { root /usr/share/nginx/html; //存放网站代码路径 index index.html index.htm; //服务器返回的默认页面文件 } //指定错误代码, 统一定义错误页面, 错误代码重定向到新的Locaiton error_page 500 502 503 504 /50x.html; } ... //第二个虚拟主机配置 server { ... } include /etc/nginx/conf.d/*.conf; //包含/etc/nginx/conf.d/目录下所有以.conf结尾的文件} //http层结束

Nginx配置网站

1.新增nginx配置文件

[root@WEB01 conf.d]# cat /etc/nginx/conf.d/game.conf server { listen 80;      #监听端口80  server_name zmj.com;   #域名 location / { root /code;        #根路径 index index.html;  #网站格式 }}

2.放置对应的源代码文件至指定的目录 并检查nginx语法是否存在错误

[root@web01 ~]#mkdir /code   #创建源代码放置的目录[root@web01 ~]#cd /code/[root@web01 code]# unzip h5game.zip -d /etc/code     #上传源代码文件,并解压到指定目录[root@web01 code]# nginx -t    #检查nginx的语法是否存在错误nginx: the configuration file /etc/nginx/nginx.conf syntax is oknginx: configuration file /etc/nginx/nginx.conf test is successful

3.重载Nginx [reload|restart]

方法一:[root@web01 code]# nginx -s reload方法二:建议这种[root@web01 code]# systemctl reload nginx

4.如何访问对应的网站

​ 1.通过服务器的IP直接访问(不推荐)

​ 2.通过假域名方式访问(推荐方式)

windows修改 C:\Windows\System32\drivers\etc\hosts

​ 10.0.0.7 game.zmj.com

​ 在hosts文件最后添加IP及域名

​ 3.使用ping命令测试域名解析是否正常

Nginx日志管理

Nginx有非常灵活的日志记录模式,每个级别的配置可以有各自独立的访问日志。日志格式通过

log_fORMat 命令定义格式

log_format详解

在nginx默认的配置文件中, log_format 已经将日志格式定死,但是我们可不可以修改呢?

  1. log_format 的作用是定义日志格式语法

    # 配置语法: 包括: error.log access.logSyntax: log_format name [escape=default|JSON] string ...;Default: log_format combined "...";Context: http
  2. nginx默认日志格式语法如下

log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';
  1. Nginx日志格式允许包含的内置变量

    $remote_addr # 记录客户端IP地址$remote_user # 记录客户端用户名$time_local # 记录通用的本地时间$time_iso8601 # 记录ISO8601标准格式下的本地时间$request # 记录请求的方法以及请求的http协议$status # 记录请求状态码(用于定位错误信息)$body_bytes_sent # 发送给客户端的资源字节数,不包括响应头的大小$bytes_sent # 发送给客户端的总字节数$msec # 日志写入时间。单位为秒,精度是毫秒。$http_referer # 记录从哪个页面链接访问过来的$http_user_agent # 记录客户端浏览器相关信息$http_x_forwarded_for #记录客户端IP地址$request_length # 请求的长度(包括请求行, 请求头和请求正文)。$request_time # 请求花费的时间,单位为秒,精度毫秒# 注:如果Nginx位于负载均衡器,nginx反向代理之后, web服务器无法直接获取到客 户端真实的IP地址。# $remote_addr获取的是反向代理的IP地址。 反向代理服务器在转发请求的http头信息中,# 增加X-Forwarded-For信息,用来记录客户端IP地址和客户端请求的服务器地址
  2. .access_log日志配置语法

    Syntax: access_log path [format [buffer=size] [gzip[=level]] [flush=time] [if=condition]];access_log off;Default: access_log logs/access.log combined;Context: http, server, location, if in location, limit_except
  3. Nginx Access日志配置实践

    server { listen 80; server_name code.tf.com;#将当前的server网站的访问日志记录至对应的目录,使用main格式 access_log /var/log/nginx/code.tf.com.log main;location / { root /code; }#当有人请求改favicon.ico时,不记录日志 location /favicon.ico { access_log off;return 200; }}

    nginx日志切割

    使用logrotate切割日志

    [root@nginx conf.d]# cat /etc/logrotate.d/nginx/var/log/nginx/*.log { daily # 每天切割日志 missinGok # 日志丢失忽略 rotate 52 # 日志保留52天 compress # 日志文件压缩 delaycompress # 延迟压缩日志 notifempty # 不切割空文件 create 640 nginx adm # 日志文件权限 sharedscripts    postrotate # 切割日志执行的命令if [ -f /var/run/nginx.pid ]; thenkill -USR1 `cat/var/run/nginx.pid`fi endscript}

    日志切割后的效果

    [root@web01 ~]# ll /var/log/nginx/total 4044-rw-r----- 1 www adm 54438 Oct 12 03:28 access.log-20181012.gz-rw-r----- 1 www adm 28657 Oct 13 03:48 access.log-20181013.gz-rw-r----- 1 www adm 10135 Oct 12 03:28 error.log-20181130.gz-rw-r----- 1 www adm 7452 Oct 13 03:48 error.log-20181201.gz

nginx相关文件及用户

程序用户:nginx(rpm默认创建,源码需要手动)
主配置文件:安装路径/conf/nginx.conf
子配置文件:安装路径/conf.d/*.conf (rpm包中默认有,源码安装没有,可以手动配置)
日志文件:(建议后续手动指定路径)
rpm包 在/var/log/nginx/
源码 安装路径/logs
程序文件:
rpm包 /usr/sbin/ 或/sbin
源码 安装路径/sbin,需要修改PATH变量,或做软链接
服务管理脚本
rpm包 /usr/lib/systemd/system/nginx.service
源码 没有,需要手动创建

基于PHP的配置

php的软件包
php:函数库
php-fpm:工具(专为nginx设计的插件),需要启动服务,才能使用,占用的是9000端口

nginx的配置,要添加php页面的代理转发

server {....     location ~ \.php$ {    root /web;        fastcgi_pass   127.0.0.1:9000;        fastcgi_index  index.php;        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;        include        fastcgi_params;     }}

程序用户统一
需要修改php-fpm的程序用户
vim /etc/php-fpm.d/www.conf
user = nginx
group = nginx

修改web目录的所属
chown -R nginx.nginx /web

上传的文件限制
nginx的配置文件
client_max_body_size 8M;
php的配置文件/etc/php.ini
upload_max_filesize = 8M
post_max_size = 8M

只要是修改过配置,就必须重启或重载
systemctl restart|reload nginx php-fpm

nginx的配置,要添加php页面的代理转发

server {....     location ~ \.php$ {    root /web;        fastcgi_pass   127.0.0.1:9000;        fastcgi_index  index.php;        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;        include        fastcgi_params;     }}

程序用户统一
需要修改php-fpm的程序用户
vim /etc/php-fpm.d/www.conf
user = nginx
group = nginx

修改web目录的所属
chown -R nginx.nginx /web

上传的文件限制
nginx的配置文件
client_max_body_size 8M;
php的配置文件/etc/php.ini
upload_max_filesize = 8M
post_max_size = 8M

只要是修改过配置,就必须重启或重载
systemctl restart|reload nginx php-fpm

来源地址:https://blog.csdn.net/weixin_48824655/article/details/130503939

--结束END--

本文标题: Nginx三种安装方式

本文链接: https://www.lsjlt.com/news/388784.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Nginx三种安装方式
    Nginx快速安装 官方提供三种版本下载 ​ Mainline version:主线版本,也叫开发版。最新版本,但没经过大量测试 ​ Stable version:稳定版本,通过大量的测试,相对比较稳...
    99+
    2023-09-01
    linux nginx 运维 服务器 centos
  • MAC安装git的三种方式
    MAC安装git的三种方式 方式一:使用Homebrew安装方式二:从官方网站下载安装包方式三:使用Xcode Command Line Tools安装总结 在MAC上安装Git有多种方式,包括通过Homebrew、下载安装包等...
    99+
    2023-08-25
    macos git
  • mysql三种安装方式介绍
    这篇文章主要讲解了“mysql三种安装方式介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql三种安装方式介绍”吧! MYSQL版本介绍 ...
    99+
    2024-04-02
  • nginx host绕过的三种方式
    目录实验环境实验背景绕过方式1绕过方式2(高版本失效)绕过方法3实验环境 CentOS7Nginx1.23.3MySQL8.0.32PHP5.4.16 实验背景 在一个LNMP架构下...
    99+
    2023-03-03
    nginx host绕过 nginx 绕过
  • docker的三种安装方式汇总
    目录docker的安装方式yum安装docker (需要联网, 允许选择版本):脚本安装最高版本dockerrpm包安装dockerdocker 安装指定版本Centos安装Ubun...
    99+
    2023-03-09
    docker的安装 安装docker docker安装方式
  • mysql中有哪三种安装方式
    这篇文章主要介绍了mysql中有哪三种安装方式,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 mysql的...
    99+
    2024-04-02
  • nginx host绕过的三种方式是什么
    本篇内容介绍了“nginx host绕过的三种方式是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!实验环境CentOS7Ngi...
    99+
    2023-07-05
  • python安装pillow的三种方法
    目录第一种方法第二种方法第三种方法安装pillow(python的图形界面库) 第一种方法 在Dos界面输入pip install pillow(但是不知为何总是失败);搞了好几次都...
    99+
    2024-04-02
  • MySQL的三种安装方式与版本是怎样的
    这篇文章将为大家详细讲解有关MySQL的三种安装方式与版本是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。 MYSQL版本介绍 mysql分alp...
    99+
    2024-04-02
  • linux 系统下四种nginx安装方法
    linux 系统下四种nginx安装方法 1 背景2 linux 的四种安装方式3 安装步骤3.1 yum 安装ningx3.2 源码编译安装nginx3.2.1 依赖库安装3.2.2 ngi...
    99+
    2023-09-26
    linux 服务器 运维
  • Centos7下部署nginx(三种方式安装部署,图文结合超详细,适合初学者)
    Centos7下部署nginx ngxin是什么 Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器, Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-...
    99+
    2023-08-18
    nginx 服务器 运维
  • nginx配置防盗链的三种实现方式总结
    目录什么是资源盗链一、引导案例二、Nginx防盗链实现原理三、Nginx防盗链具体实现实现方式一实现方式二实现方式三总结什么是资源盗链 资源盗链是指内容不在自己服务器上,而通过技术手...
    99+
    2024-04-02
  • Linux内网离线安装nginx(rpm包安装方式)
    1、下载RPM离线安装包: 首先,先下载nginx的rpm包,下载地址:http://nginx.org/packages/centos/7/x86_64/RPMS/ 下载nginx-1.18.0-2.el7.ngx.x86_64.rp...
    99+
    2023-08-31
    linux nginx 运维 服务器 Powered by 金山文档
  • MySQL5.7的多种安装方式
    本篇内容介绍了“MySQL5.7的多种安装方式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • pip安装python第三方库的四种方法
    文章目录 一、无镜像安装二、镜像安装三、一劳永逸式镜像安装四、批量安装总结 一、无镜像安装 pip install 库名 打开命令提示符【win + r】,输入cmd,在命令提示窗口输入...
    99+
    2023-09-01
    python
  • mysql-8.0.15-winx64 解压版安装教程及退出的三种方式
    1、官网下载,并解压 https://dev.mysql.com/downloads/mysql/ 2、设置环境变量 配置MYSQL_HOME为MySQL的解压路径,并在path设置;%MYSQL_HO...
    99+
    2024-04-02
  • MySQL三种打开方式
    「作者主页」:士别三日wyx 「作者简介」:CSDN top200、阿里云博客专家、华为云享专家、网络安全领域优质创作者 上一篇: MySQL安装教程 下一篇: MySQL卸载教程 MyS...
    99+
    2023-09-12
    mysql python c语言 java 网络安全
  • MySql三种备份方式
    一、备份的目的     1. 做灾难恢复:对损坏的数据进行恢复和还原     2. 需求改变:因需求改变而需要把数据还原到改变以前测试:测试新功能是否可用 二、备份需要考虑的问题     1. 可以容忍丢失多长时间的数据;     2. 恢...
    99+
    2023-09-03
    java 数据库 开发语言
  • android json的三种方式
    在Android中,可以使用以下三种方式来处理JSON数据:1. 使用原生的JSONObject和JSONArray类:Androi...
    99+
    2023-08-29
    android
  • Python软件包安装的三种常见方法
    目录前言1、复制源代码到系统目录2、使用PIP进行安装1) 安装2) 卸载3) 查看已经安装的包4) 查看某个包的详细情况5) 查看服务器上的包信息3、使用easy_install和...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作