Nginx三种安装方式

这篇具有很好参考价值的文章主要介绍了Nginx三种安装方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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 来安装

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

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

2.安装Nginx服务

#yum install nginx -y

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

下载配置环境

yum install -y yum-utils

配置nginx yum 源

yum install -y yum-utils


cat > /etc/yum.repos.d/nginx.repo <<EOF
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/\$releasever/\$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
EOF

安装nginx 服务

yum install -y nginx
systemctl start nginx 
systemctl enable nginx

3.编译安装

1.下载源码包

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

2.解压源码包

#tar xf nginx-1.20.1.tar.gz

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

#1.创建用户和组,且不创建用户的家目录
#groupadd nginx -g 888
#useradd -u 888 -g 888 -s /sbin/nologin -M nginx

#2.创建安装目录
默认安装到/usr/local/nginx/,建议安装到指定目录,目录路径根据公司要求来定义
#mkdir -p /app

4.进入解压目录,执行配置脚本进行预编译,生成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= #指定第三方模块

5.编译安装

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

6.做软链接

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

7.配置环境变量

#写入启动配置文件
#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 ok
nginx: 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.log
    Syntax: 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 ]; then
    			kill -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的配置

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

2.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;
     }

}

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

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

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

6.只要是修改过配置,就必须重启或重载
systemctl restart|reload nginx php-fpm文章来源地址https://www.toymoban.com/news/detail-687779.html

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;
     }

}

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

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

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

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

到了这里,关于Nginx三种安装方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • linux系统---安装使用nginx

    目录 一、编译安装Nginx  1、关闭防火墙,将安装nginx所需要软件包传到/opt目录下 ​编辑2、安装依赖包 3、创建运行用户、组 4、编译安装nginx 5、创建软链接后直接nginx启动 ​编辑  6、创建nginx自启动文件 ​编辑6.1 重新加载配置、设置开机自启并开启服务 二、yum安装   1、

    2024年03月21日
    浏览(40)
  • Linux系统下安装配置nginx(保姆级教程)

    前景提要:本人小白一个,由于需要将前端的代码部署到服务器上,然后了解到了nginx,便开始了nginx安装配置的信息搜集和实践,经过屡次的失败,最后在b站上一个视频的带领下,成功完成。 一.依赖下载 yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel  示例如图

    2024年02月10日
    浏览(43)
  • Linux 安装 Nginx 并配置为系统服务(超详细)

    Nginx是一款卓越的高性能Web服务器,被广泛用于托管网站和应用程序。本文旨在为您提供详细的指南,帮助您在Linux系统上成功安装、配置和启动Nginx服务器。通过这一过程,您将了解如何将Nginx集成到您的系统中,以便轻松地托管您的网站和应用程序。 在开始安装Nginx之前,

    2024年02月05日
    浏览(44)
  • linux安装nginx,配置系统文件,配置systemctl命令,亲测可用,

    先安装gcc-c++编译器 安装pcre包 安装zlib包 在/usr/local/创建nginx文件 进入nginx目录 下载nginx安装包 注:如果没有wget命令,就安装命令 解压安装包 执行以下三个命令 添加到系统服务中 最后加入配置 重载配置 添加systemctl命令 添加内容 重新加载系统服务 启动服务 停止服务 重启

    2024年02月02日
    浏览(60)
  • Centos7下部署nginx(三种方式安装部署,图文结合超详细,适合初学者)

    Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器, Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用

    2024年02月05日
    浏览(62)
  • 【Linux】CentOS7操作系统安装nginx实战(多种方法,超详细)

    大家好,又见面了,我是沐风晓月,本文是专栏【运维系列-架构与服务】专栏中的[linux基本功-系统服务实战篇],主要讲解nginx的编译安装和yum安装的方式 此专栏是沐风晓月对Linux常见的服务和架构进行总结,希望能够加深自己的印象,以及帮助到其他的小伙伴😉😉。 如果

    2024年02月02日
    浏览(57)
  • Linux下的nginx重启方式

    systemctl restart nginx service nginx restart /usr/sbin/nginx -s reload

    2024年02月12日
    浏览(34)
  • Centos系列:Centos7下部署nginx(三种方式安装部署,图文结合超详细,适合初学者)

    Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器, Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用

    2024年04月26日
    浏览(42)
  • 如何在Linux Ubuntu系统安装Nginx服务并实现无公网IP远程连接

    在开发人员的工作中,公网远程访问内网是其必备的技术需求之一。对于运维人员和开发者来说,能够通过公网远程访问内部的服务和应用,能够极大地提升工作效率和便利性。本文将介绍如何利用 Ubuntu操作系统、Docker容器技术以及cpolar内网穿透工具来实现公网远程访问本地

    2024年03月22日
    浏览(40)
  • CentOS系列:【Linux】CentOS7操作系统安装nginx实战(多种方法,超详细)

    本次的实验环境见下表: 操作系统 服务器IP hostname centos7.6 192.168.1.41 mufengrow41 如何查看相应的参数: 查看操作系统: 查看ip 2.1 添加yum源 nginx不在的默认的yum源中, 可以使用epel或者官网提供的yum源来安装。 以下两种方法,选择任意一种即可,也就是2.1.1和2.1.2两个小节的内

    2024年04月15日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包