暴力解说之首次部署NGINX

news/2024/7/9 18:19:19 标签: 运维, epoll, 操作系统

前言

本章基于Centos 7.x系统讲解

本章讲解下在项目上线部署的时候对NGINX的操作。有些童鞋在网上百度类似LNMP安装就跟着命令一条一条执行了,如果没报错还好,一旦报错就懵逼状态了。这是对自己、对代码的不负责任的表现。本章带大家"正经"的安装一次NGINX。

下载

下载NGINX的源码包切勿随意查找,好好的NGINX官网在那摆着,何必盲目搜寻呢?

源码包下载地址 : http://nginx.org/en/download....

1504257-20181121164441428-202568826.png

  • Mainline Version 主线版本,也是开发版本测试版本,跟自己没仇的最好别下载
  • Stable version 稳定版本,一般下载就在稳定版本内找就可以了
  • Legacy versions 以往的版本

实际对版本没有太多要求的,下载稳定版本的就可以,每个版本都分.gz的源码包和.exe的windows安装包,会下载游戏还不会下载个压缩包了吗?

很多人纠结安装包放哪比较好,现在告诉你

/usr/src

usr 历史上全称是user(用户目录),只不过现在不是这个意思了,。总之放这地死不了人。

wget http://nginx.org/download/nginx-1.14.0.tar.gz

wget 比吃饭还简单的命令了解一下?

1504257-20181121164450115-1047244618.png

然后就开始下载了,下载懂不懂?没下载过游戏吗?

安装

下载完之后 /usr/src 目录下就有个 nginx-1.14.0.tar.gz 的压缩包,然后就是刷刷刷的命令,撸起袖子就是干

解压缩

tar 解压缩命令

参数说明
-z专门解压gzip压缩的,没看到压缩包最后是.gz嘛
-x解压
-v解压过程,就是解出来啥文件
-f指向文件,一定得放最后
tar -zxvf nginx-1.14.0.tar.gz

随后就是咔咔咔的解压,然后出来一些看不懂的文件

nginx-1.14.0/
nginx-1.14.0/auto/
nginx-1.14.0/conf/
nginx-1.14.0/contrib/
nginx-1.14.0/src/
nginx-1.14.0/configure
nginx-1.14.0/LICENSE
nginx-1.14.0/README
nginx-1.14.0/html/
nginx-1.14.0/man/
nginx-1.14.0/CHANGES.ru
nginx-1.14.0/CHANGES
nginx-1.14.0/man/nginx.8
nginx-1.14.0/html/50x.html
nginx-1.14.0/html/index.html
nginx-1.14.0/src/core/
nginx-1.14.0/src/event/
nginx-1.14.0/src/http/
nginx-1.14.0/src/mail/
nginx-1.14.0/src/misc/
nginx-1.14.0/src/os/
nginx-1.14.0/src/stream/
nginx-1.14.0/src/stream/ngx_stream_geo_module.c
nginx-1.14.0/src/stream/ngx_stream.c
nginx-1.14.0/src/stream/ngx_stream.h
nginx-1.14.0/src/stream/ngx_stream_limit_conn_module.c
nginx-1.14.0/src/stream/ngx_stream_access_module.c
......

这个时候你所在的 /usr/src 目录下就有了一个 nginx-1.14.0 文件夹

nginx-1.14.0  nginx-1.14.0.tar.gz

./configure

目录有了现在就是安装了,不要百度不要谷歌,官网文档写的那么清楚干那多余的活有什么用。小学英语就能看懂。http://nginx.org/en/docs/conf... , 滑动到最下面,官网给出了一个demo

./configure
    --sbin-path=/usr/local/nginx/nginx
    --conf-path=/usr/local/nginx/nginx.conf
    --pid-path=/usr/local/nginx/nginx.pid
    --with-http_ssl_module
    --with-pcre=../pcre-8.41
    --with-zlib=../zlib-1.2.11
对头就是这样安装,如果你不愿了解这些配置,完全就可以
./configure
对没错,啥都不用加,9个字母结束战斗,为什么不需要加参数?是因为nginx很多参数都有默认值。
参数默认注释
--prefix=path/usr/local/nginxnginx安装路径
--sbin-path=pathprefix/sbin/nginxnginx命令路径
--modules-path=pathprefix/modulesnginx模块路径
--conf-path=pathprefix/conf/nginx.confnginx配置文件路径
--error-log-path=pathprefix/logs/error.lognginx默认日志目录
执行./configure
checking for OS
 + Linux 3.10.0-514.26.2.el7.x86_64 x86_64
checking for C compiler ... found
 + using GNU C compiler
 + gcc version: 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC)
checking for gcc -pipe switch ... found
checking for -Wl,-E switch ... found
checking for gcc builtin atomic operations ... found
checking for C99 variadic macros ... found
checking for gcc variadic macros ... found
checking for gcc builtin 64 bit byteswap ... found
checking for unistd.h ... found
checking for inttypes.h ... found
checking for limits.h ... found
checking for sys/filio.h ... not found
checking for sys/param.h ... found
checking for sys/mount.h ... found
checking for sys/statvfs.h ... found
checking for crypt.h ... found
checking for Linux specific features
checking for epoll ... found
checking for EPOLLRDHUP ... found
checking for EPOLLEXCLUSIVE ... not found
checking for O_PATH ... found
checking for sendfile() ... found
checking for sendfile64() ... found
....
configure是个检查工具,上面的直接结果很清楚了,各种的checking,检测下环境支持不?依赖都装了吗?检测成功后你才可以进入下一步,否则你进入下一步也依旧会提示xxx不存在,xxx不支持等等
make && make install
make是一个编译工具,你就记住是个编译工具就行了,编译的过程输出
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
....
cp conf/nginx.conf '/usr/local/nginx/conf/nginx.conf.default'
test -d '/usr/local/nginx/logs' \
    || mkdir -p '/usr/local/nginx/logs'
test -d '/usr/local/nginx/logs' \
    || mkdir -p '/usr/local/nginx/logs'
test -d '/usr/local/nginx/html' \
    || cp -R html '/usr/local/nginx'
test -d '/usr/local/nginx/logs' \
    || mkdir -p '/usr/local/nginx/logs'
make[1]: 离开目录“/usr/src/nginx-1.14.0”

最后他copy了一些必须文件到指定目录里,这个时候nginx的安装就基本完成了。

配置

如果是仅仅执行了这条命令

./configure

那nginx的目录就是

/usr/local/nginx
-----------
cert  client_body_temp  conf  fastcgi_temp  html  logs  proxy_temp  sbin  scgi_temp  uwsgi_temp

以下讲解的所有配置都在nginx.conf内进行

修改默认指向目录

取消默认指向的解析目录 html 直接注释掉就行了。一般我会把项目目录指向 /var/www 一般都在虚拟主机文件中指向

避免泛解析

总有些人会把域名解析错地址或者是恶意解析到你的服务器上。对于这种人必须严惩

server {
    listen       80  default_server;
    server_name  _;
    return       403;
}

分分钟屏蔽他

添加虚拟主机

虚拟主机的配置文件可千万别都写到nginx.conf中
一般我会在nginx.conf同级建立一个server目录存放

include /usr/local/nginx/conf/server/*.conf;

配置Gzip压缩

http://nginx.org/en/docs/http...

添加SSL支持

https://segmentfault.com/a/11...

开启日志记录

https://segmentfault.com/a/11...

开启负载均衡

https://segmentfault.com/a/11...

开启反向代理

https://segmentfault.com/a/11...

设置权限

最好设置nginx命令之允许root用户或者你们公司的运营执行,无缘无故的nginx -s stop可受不了。

官网文档

nginx官网是我感觉文档写的最简介最详细的文档。以下列出各部分详细地址

  • 编译配置参数 http://nginx.org/en/docs/conf...
  • 虚拟主机配置 http://nginx.org/en/docs/http...
  • 配置文件中的计量单位 http://nginx.org/en/docs/synt...
  • nginx命令参数 http://nginx.org/en/docs/swit...
  • nginx负载均衡配置 http://nginx.org/en/docs/http...
  • nginx官方博客 https://www.nginx.com/blog/

致谢

感谢你看到这里,本篇文章我的语言过于偏激了,还希望见谅。希望本篇文章可以帮助到你,有什么问题可以在评论区留言。谢谢

别害怕英语,小学英语水平就能看懂,一切源于坚持

原文地址:https://segmentfault.com/a/1190000015917733

转载于:https://www.cnblogs.com/lalalagq/p/9996044.html


http://www.niftyadmin.cn/n/1788819.html

相关文章

华为nova7保密柜_科氪 | 华为nova8系列Vlog手机正式发布 3299元起

2020年12月23日,华为nova8系列手机正式发布。作为深受年轻人喜爱的手机品牌之一,华为nova8系列此次延续其强大的前置视觉实力、强悍的设计性能以及独特的设计美学,带来业内首款专为Vlog拍摄设计的5G手机。随着短视频和Vlog的崛起,…

spring学习总结——高级装配学习二(处理自动装配的歧义性)

我们已经看到如何使用自动装配让Spring完全负责将bean引用注入到构造参数和属性中。自动装配能够提供很大的帮助。不过,spring容器中仅有一个bean匹配所需的结果时,自动装配才是有效的。如果不仅有一个bean能够匹配结果的话,Spring此时别无他…

python循环创建文件夹_Python入门无从下手?Python学习教程(知识架构)给你准备好了...

我发现这两天,同学们对于python基础课程到底要学什么,一直不能很好的确定,虽然给大家出的Python学习教程和发给部分同学的视频资源,大家也都有看有学,但是很多同学还是不能有一个明确的方向,找不准自己的定…

记录Python类与继承的一个错误

今天在学python的类与继承的时候遇到一个错误,原来是自己在ctrlc ctrlv的时候漏了一个括号 1 class Car():2 def __init__(self,make,year,model):3 self.makemake4 self.modelmodel5 self.yearyear6 self.odometer_reading07…

ffplay拉流时间长卡住_橘猫失踪了好久,主人再找到它时忍不住笑了:卡住了吧?...

橘猫的胖那是众所周知的,可是它到底能胖到什么程度呢?咱也不知道啊,毕竟只有更胖,没有最胖。对于家里养橘猫的铲屎官来说,只要平时没虐待它们,就甭怕它们养不胖。猫咪一般都是很灵活的,对于它们…

Java(C#)基础差异-数组

1、填充数组 Java 数组填充替换方法Arrays.fill() 举例如下&#xff1a; import java.util.Arrays; public class FillDemo {public static void main(String[] args) {int arr[] new int[5];// 使用同一个值对数组进行填充Arrays.fill(arr, 8);for (int i 0; i < arr.len…

unity3d中画线有几种方式_粉粒体气力输送中几种常见的物位控制方式

气力输送又称气流输送&#xff0c;是利用气流的能量&#xff0c;在密闭管道内沿气流方向输送颗粒状物料&#xff0c;是流态化技术的一种具体应用&#xff0c;其主要由气源系统、供料系统、管路系统、干燥系统、除尘系统、料仓系统、计量系统、包装系统、控制系统组成&#xff0…

实验四报告

20171308171 胡欣怡 一、实验目的1. 理解和掌握寄存器间接寻址方式[bx]2. 通过汇编指令 loop 的使用理解编程语言中循环的本质3. 熟练掌握使用 debug 按需调试完整汇编源程序的方法二、实验准备1. 学习/复习第 5 章使用[bx]和 loop 实现循环的编程应用示例&#xff08;教材 5.…