一 Nginx yum安装

1.1 前置准备

1 [[email protected] ~]# systemctl status firewalld.service#检查防火墙

2 [[email protected] ~]# getenforce#检查SELinux

3 Disabled

提示:建议关闭防火墙,或通过如下方式放通相关80或443端口:

1 firewall-cmd --permanent --add-port=80/tcp

2 firewall-cmd --permanent --add-port=443/tcp

1.2 配置yum源

1 [[email protected] ~]# cat > /etc/yum.repos.d/nginx.repo <

2 [nginx-stable]

3 name=nginx stable repo

4 baseurl=http://nginx.org/packages/centos/\$releasever/\$basearch/

5 gpgcheck=1

6 enabled=1

7 gpgkey=https://nginx.org/keys/nginx_signing.key

8 module_hotfixes=true

9

10 [nginx-mainline]

11 name=nginx mainline repo

12 baseurl=http://nginx.org/packages/mainline/centos/\$releasever/\$basearch/

13 gpgcheck=1

14 enabled=0

15 gpgkey=https://nginx.org/keys/nginx_signing.key

16 module_hotfixes=true

17 EOF

1.3 安装Nginx

1 [[email protected] ~]# yum -y install nginx

2 [[email protected] ~]# nginx -v

3 nginx version: nginx/1.18.0

提示:如上安装默认安装为当前最新稳定版,若需要安装开发版,可执行yum-config-manager --enable nginx-mainline,然后yum安装,不建议安装开发版。

参考:https://nginx.org/en/linux_packages.html。

1 [[email protected] ~]# systemctl start nginx

2 [[email protected] ~]# systemctl enable nginx#启动服务

1.4 测试访问

浏览器访问:http://172.24.8.71/

1.5 其他信息

1 [[email protected] ~]# nginx -V#查看yum安装所编译的模块及参数

2 nginx version: nginx/1.18.0

3 built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)

4 built with OpenSSL 1.0.2k-fips 26 Jan 2017

5 TLS SNI support enabled

6 configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt=‘-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC‘ --with-ld-opt=‘-Wl,-z,relro -Wl,-z,now -pie‘

7 [[email protected] ~]# rpm -ql nginx#查看所安装的文件

8 [[email protected] ~]# rpm -qc nginx #查看相关的配置文件

二 Nginx源码编译安装

2.1 依赖组件

1 [[email protected] ~]# yum -y install gcc gcc-c++ wget autoconf pcre pcre-devel openssl openssl-devel openssh-clients net-tools vim ntp screen lrzsz bash-completion bash-completion-extras lvm2 make automake epel-release tree zlib zlib-devel libtool

提示:部分依赖包为比如,如:

zlib库:zlib库是ngx_http_gzip_module(gzip压缩模块)所必需的

openssl库 :--with-http_ssl_module使用该模块必需装openssl库,来实现http支持https协议。

2.2 编译安装

1 [[email protected] ~]# useradd -s /sbin/nologin -M nginx#提前创建用户及用户组

2 [[email protected] ~]# wget http://nginx.org/download/nginx-1.17.8.tar.gz

3 [[email protected] ~]# tar -xvf nginx-1.17.8.tar.gz

4 [[email protected] ~]# cd nginx-1.17.8/

5 [[email protected] nginx-1.17.8]# ./configure \

6 --conf-path=/usr/local/nginx/conf/nginx.conf 7 --error-log-path=/var/log/nginx/error.log 8 --group=nginx 9 --http-client-body-temp-path=/var/cache/nginx/client_temp 10 --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp 11 --http-log-path=/var/log/nginx/access.log 12 --http-proxy-temp-path=/var/cache/nginx/proxy_temp 13 --http-scgi-temp-path=/var/cache/nginx/scgi_temp 14 --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp 15 --lock-path=/var/run/nginx.lock 16 --pid-path=/var/run/nginx.pid 17 --prefix=/usr/local/nginx 18 --sbin-path=/usr/local/bin/nginx 19 --user=nginx 20 --with-http_gzip_static_module 21 --with-http_realip_module 22 --with-http_ssl_module 23 --with-http_stub_status_module 24 --with-http_sub_module 25 --with-http_v2_module 26 --with-stream 27 --with-stream_realip_module 28 --with-stream_ssl_module

29 [[email protected] nginx-1.17.8]# make && make install

30 [[email protected] ~]# nginx -V #查看安装版本

31 [[email protected] ~]# tree /usr/local/nginx/#查看目录结构

目录作用

conf

用于存储nginx配置文件

html

用于存放静态网页

logs

存放日志

sbin

用于存放 nginx 执行命令

2.3 服务管理

1 [[email protected] ~]# echo $PATH

2 /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

3 [[email protected] ~]# mkdir -p /var/cache/nginx/

4 [[email protected] ~]# ll /usr/local/bin/

5 total 7.5M

6 -rwxr-xr-x 1 root root 7.5M Mar 5 01:09 nginx

提示:若nginx的prefix未编译系统PATH中,如/opt/nginx/,需要在PATH中,可通过如下方式添加:

echo ‘PATH=/opt/nginx/:\$PATH‘ > /etc/profile.d/nginx.sh

1 [[email protected] ~]# nginx#服务启动

2 [[email protected] ~]# nginx -s stop#服务关闭

3 [[email protected] ~]# nginx -s reload #重载配置文件

4 [[email protected] ~]# nginx -s reopen #重启Nginx

5 [[email protected] ~]# nginx -s quit#关闭Nginx

6 [[email protected] ~]# nginx -t #测试配置文件

7 [[email protected] ~]# nginx -t -c 【file】#使用额外的配置文件测试

8 [[email protected] ~]# ps aux | grep nginx#查看进程

9 [[email protected] ~]# netstat -ano | grep 80#查看端口

2.4 开机启动

1 [[email protected] ~]# vi /usr/lib/systemd/system/nginx.service

2 [Unit]

3 Description=nginx - high performance web server

4 Documentation=http://nginx.org/en/docs/

5 After=network-online.target remote-fs.target nss-lookup.target

6 Wants=network-online.target

7

8 [Service]

9 Type=forking

10 PIDFile=/var/run/nginx.pid

11 ExecStart=/usr/local/bin/nginx -c /usr/local/nginx/conf/nginx.conf

12 ExecReload=/bin/kill -s HUP $MAINPID

13 ExecStop=/bin/kill -s TERM $MAINPID

14

15 [Install]

16 WantedBy=multi-user.target

17 [[email protected] ~]# systemctl daemon-reload

18 [[email protected] ~]# systemctl start nginx.service#启动服务

19 [[email protected] ~]# systemctl enable nginx.service#开机启动

说明:

Description:描述服务

After:描述服务类别

[Service]:服务运行参数的设置

Type=forking:是后台运行的形式

ExecStart:为服务的具体运行命令

ExecReload:为重启命令

ExecStop:为停止命令

PrivateTmp=True:表示给服务分配独立的临时空间

注意:[Service]的启动、重启、停止命令全部要求使用绝对路径

[Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3

systemctl start nginx.service (启动nginx服务)

systemctl stop nginx.service (停止nginx服务)

systemctl enable nginx.service (设置开机自启动)

systemctl disable nginx.service (停止开机自启动)

systemctl status nginx.service (查看服务当前状态)

systemctl restart nginx.service (重新启动服务)

systemctl list-units --type=service (查看所有已启动的服务)

2.5 测试访问

浏览器访问:http://172.24.8.71/

2.6 编译选项

1 [[email protected] nginx-1.17.8]# ./configure --help#查看编译选项

如下为常见编译选项及其释义:

编译选项作用

--prefix=/etc/nginx程序安装目录和路径

--sbin-path=/usr/sbin/nginxNginx启动停止名

--modules-path=/usr/lib64/nginx/modulesNginx模块路径

--conf-path=/etc/nginx/nginx.confNginx主配置文件路径

--error-log-path=/var/log/nginx/error.logNginx错误日志路径

--http-log-path=/var/log/nginx/access.logNginx访问日志路径

--pid-path=/var/run/nginx.pidNginx Pid路径

--lock-path=/var/run/nginx.lockNginx锁路径

--http-client-body-temp-path=/var/cache/nginx/client_tempclient头部临时缓存文件

--http-proxy-temp-path=/var/cache/nginx/proxy_tempproxy临时缓存文件

--http-fastcgi-temp-path=/var/cache/nginx/proxy_tempfastcgi临时缓存文件

--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_tempuwsgi临时缓存文件

--http-scgi-temp-path=/var/cache/nginx/scgi_tempscgi临时缓存文件

--user=nginx设置Nginx进程启动用户

--group=nginx设置Nginx进程启动用户组

--with-cc-opt设置额外的参数将被添加到CFLACS变量

--with-id-opt设置额外的参数,链接系统库

三 Nginx目录及模块

3.1 相关目录

如下以Nginx yum安装后的目录为例:

路径类型作用

/etc/nginx

/etc/nginx/nginx.conf

/etc/nginx/conf.d

/etc/nginx/conf.d/default.conf配置文件Nginx主配置文件

/etc/nginx/fastcgi_params

/etc/nginx/scgi_params

/etc/nginx/uwsgi_params配置文件Cgi、Fastcgi、Uwsgi配置文件

/etc/nginx/win-utf

/etc/nginx/koi-utf

/etc/nginx/koi-win配置文件Nginx编码转换映射文件

/etc/nginx/mime.types配置文件http协议的Content-Type

/etc/rc.d/init.d/nginx

/etc/rc.d/init.d/nginx-debug

/etc/sysconfig/nginx

/etc/sysconfig/nginx-debug配置文件配置系统守护进程管理器

/etc/logrotate.d/nginx配置文件Nginx日志轮询、日志切割

/usr/sbin/nginx

/usr/sbin/nginx-debug命令Nginx终端管理器命令

/usr/share/doc/nginx-1.xx.x

/usr/share/man/man8/nginx.8.gz目录Nginx的帮助手册

/var/cache/nginx目录Nginx的缓存目录

/var/log/nginx目录Nginx的日志目录

/etc/nginx/modules

/etc/lib64/nginx

/etc/lib64/nginx/modules目录Nginx的模块目录

/usr/share/nginx

/usr/share/nginx/html

/usr/share/nginx/html/50x.html

/usr/share/nginx/html/index.html目录Nginx默认站点目录

3.2 Nginx模块

Nginx模块分为Nginx官方模块和Nginx第三方模块。

Nginx编译选项模块作用

ngx_http_core_module包含一些核心的http参数配置,对应Nginx的配置区块部分。

ngx_http_access_module访问控制模块,用来控制网站用户对Nginx的访问。

ngx_http_gzip_module压缩模块,对Nginx返回的数据压缩,属于性能优化模块。

ngx_http_fastcgi_modulefastcgi模块,和动态应用相关的模块,例如PHP。

ngx_http_proxy_moduleproxy代理模块。

ngx_http_upstream_module负载均衡模块,实现网站的负载均衡功能机健康检查。

ngx_http_rewrite_moduleURL地址重写模块。

ngx_http_limit_conn_module限制用户并发连接数及请求连接数。

ngx_http_limit_req_module限制Nginx request processing rate根据定义的key。

ngx_http_log_module访问日志模块,以指定的格式记录Nginx客户访问日志等信息。

ngx_http_auth_basic_moduleWeb认证模块,设置Web用户通过账号密码访问Nginx。

ngx_http_ssl_modulessl模块,用于加密的http连接,如https。

四 Nginx变量及状态码

4.1 Nginx变量

ngx_http_core_module的内置变量通常有:http请求变量、Nginx内置变量、自定义变量。

$uri:当前请求的URI,不带参数;

$request_uri:请求的URI,带完整参数;

$host:http请求报文中的host首部,如果没有则以处理此请求的虚拟主机的主机名代替;

$hostname:Nginx服务运行所在主机的主机名;

$remote_addr:客户端IP;

$remote_prot:客户端端口;

$remote_user:使用用户认证时客户端用户输入的用户名;

$request_filename:用户请求中的URI经过本地root或alias转换后映射的本地文件路径;

$request_method:请求方法,GET、POST、PUT;

$server_addr:服务器地址;

$server_name:服务器名称;

$server_port:服务器端口;

$server_protocol:服务器向客户端发送响应时的协议,如http/1.1、http/1.0;

$scheme:在请求中使用scheme。如http://xxx.com中的http;

$http_HEADER:匹配请求报文中指定的HEADER;

$http_host:匹配请求报文中的host首部。

4.2 http状态码

http状态码是用以表示网页服务器HTTP响应状态的3位数字代码。可通过查看HTTP状态码来判断服务器状态,常见的有404、502等。301:永久移动,被请求的资源已被永久移动位置;

302:请求的资源限制临时从不同的URI响应请求;

305:使用代理,被请求的资源必须通过指定的代理才能访问;

307:临时跳转,被请求的资源在临时从不同的URL响应请求;

400:错误请求;

402:需要付款,预留状态码,用于将来一些数字货币或者微支付;

403:禁止访问,服务器已理解请求,但拒绝执行它;

404:找不到对象,请求失败,资源不存在;

406:不可接受的,请求的资源内容特性无法满足请求头部中的条件,因而无法生成响应实体;

408:请求超时;

409:冲突,由于和被请求的资源的当前状态之间存在冲突,请求无法完成;

410:遗失的,被请求的资源在服务器上已经不再可用,而且没有任何已知的转发地址;

413:响应实体太大,服务器拒绝处理当前请求,请求超过服务器所能处理和允许的最大值;

417:期望失败。在请求头 Expect 中指定的预期内容无法被服务器满足;

418:我是一个茶壶。超文本咖啡罐控制协议,但是并没有被实际的HTTP服务器实现;

420:方法失效;

422:不可处理的实体。请求格式正确,但是由于含有语义错误,无法响应;

500:服务器内部错误。服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理;

502:请求后端失败;

504:请求成功,但是响应超时。

原文:https://www.cnblogs.com/itzgr/p/13266215.html

flacs 安装教程_002.Nginx安装及启动相关推荐

  1. kubernetes安装_kubernetes安装教程之三:安装kubeadm

    kubernetes安装教程之三:安装kubeadm 准备安装包和镜像 安装可以使用VPN下载 ````bash yum --downloadonly --downloaddir=/opt/rpm k ...

  2. Oracle12c 的安装教程图解(安装系统:windows 2008R2)

    Oracle12c 的安装教程图解(安装系统:windows 2008R2) 第一节 安装和下载路径 1   官方下载路径: http://www.oracle.com/cn/products/dat ...

  3. 我的世界java版去哪下载光影,《我的世界》中国版光影包详细安装教程 光影怎么安装?...

    <我的世界>中国版光影包详细安装教程 光影怎么安装? 2017-08-15 15:17:21来源:网易论坛编辑:评论(0) <我的世界>中国版已经正式开测,玩家在体验游戏时都喜 ...

  4. Android Studio, 2020.9月最新版下载安装教程+SDK下载安装

    Android Studio, 2020.9月最新版下载安装教程+SDK下载安装 一.进入官网下载 二.安装Android Studio 三.安装SDK 一.进入官网下载 1.进入Android St ...

  5. python35安装教程_python详细安装教程,非常值得看的一篇文章

    Python安装教程 本文简单介绍python编程语言的安装教程,python安装有很多方式.你可以直接在官网下载python进行安装,也可以下载Anaconda,本文介绍安装Anaconda的方法. ...

  6. ArcGIS10.8下载及安装教程(附安装步骤)

    谷歌云: https://drive.google.com/drive/folders/10igu7ZSMaR0v0WD7-2W-7ADJGMUFc2ze?usp=sharing ArcGIS10.8 ...

  7. Git安装教程(Windows安装超详细教程)

    Git安装教程(Windows安装超详细教程)  weir_will 关注 0.9 2017.10.08 00:59* 字数 728 阅读 17955评论 8喜欢 41 2018年4月14日更新  更 ...

  8. PHPwind9.01图解安装教程 PHPwind怎么安装方法

    PHPwind9.01图解安装教程 PHPwind怎么安装方法http://www.bieryun.com/1238.html PHPwind9.01傻瓜图解安装教程 大家好,按照惯例,PHPwind ...

  9. ads2019安装教程win10 ads2019安装破解教程 ads安装助手辅助安装

    学习目标: 看ads2019安装教程轻松解决在win10电脑上完成ads2019安装 学习内容: 安装ads2019所需要的环境 看ads2019安装教程执行操作 关键地方不要选错 ads安装助手辅助 ...

最新文章

  1. 独家 | 融资2.1亿商汤领投,他要用VR+AR解决无人驾驶的路测难题
  2. Leetcode PHP题解--D57 762. Prime Number of Set Bits in Binary Representation
  3. WEB前端学习五 js什么是引用类型
  4. python怎么重命名word文件,Python读取word文本操作详解
  5. canvas笔记-画三角形并计算其外心(含算法其他绘图框架类似)
  6. mybatis+spring mvc 完美整合方案 查询,保存,更新,删除自动生成
  7. drop table 、delete table和truncate table的区别
  8. [工具] PicGo + Github 图床
  9. 查看Xcode配置文件
  10. 怎样使用SQL SERVER新建立一个数据库
  11. 简简单单几行Python代码就能暴力破解网站登录密码,真有这么强吗?
  12. 数学不好可以学计算机科学吗,数学不好可以学习计算机专业吗?
  13. 山海关与老龙头 逃不掉的寂寞与人群
  14. 暴走英雄坛计算机在线,暴走英雄坛计算器
  15. 计算机专业顶岗实训,计算机专业学生的顶岗实习
  16. 你的微博也被盗赞?试试HSTS强制HTTPS加密 1
  17. 完美实现Ubuntu系统迁移到另一台电脑/服务器
  18. python设定字符串长度_python 修改字符串长度_Python 字符串操作
  19. SIMCOM A7670 模组(4G Cat.1 通信模组)AT指令测试 TCP/UDP 通信过程
  20. 家电消费市场潜力爆发,智能制造成发展趋势

热门文章

  1. 程序员值得收藏的10大网站 | 推荐指数 | 满天星★★★★★
  2. 浅谈ACX带通滤波器应用
  3. Mit6.S081学习记录
  4. 有你智居告诉你,智能门禁是如何做到出入小区只需1秒钟的?
  5. 国内五大抗DDoS服务
  6. 人脸识别-----Olivetti Faces人脸数据集合处理
  7. [蛋蛋无厘头日记]收到礼物喵~o(∩_∩)o
  8. ubuntu64 使用gcc -m32编译成32bit程序
  9. web移动端安卓和ios兼容问题
  10. 什么叫最少拍计算机控制系统,最少拍无波纹计算机控制系统的一种综合方法.doc...