暴力解说之首次部署NGINX
前言
本章基于Centos 7.x系统讲解
本章讲解下在项目上线部署的时候对NGINX的操作。有些童鞋在网上百度类似LNMP安装就跟着命令一条一条执行了,如果没报错还好,一旦报错就懵逼状态了。这是对自己、对代码的不负责任的表现。本章带大家"正经"的安装一次NGINX。
下载
下载NGINX的源码包切勿随意查找,好好的NGINX官网在那摆着,何必盲目搜寻呢?
源码包下载地址 : http://nginx.org/en/download....

- 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 比吃饭还简单的命令了解一下?

然后就开始下载了,下载懂不懂?没下载过游戏吗?
安装
下载完之后 /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/nginx | nginx安装路径 |
| --sbin-path=path | prefix/sbin/nginx | nginx命令路径 |
| --modules-path=path | prefix/modules | nginx模块路径 |
| --conf-path=path | prefix/conf/nginx.conf | nginx配置文件路径 |
| --error-log-path=path | prefix/logs/error.log | nginx默认日志目录 |
执行./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
暴力解说之首次部署NGINX的更多相关文章
- 为首次部署MongoDB做好准备:容量计划和监控
如果你已经完成了自己新的MongoDB应用程序的开发,并且现在正准备将它部署进产品中,那么你和你的运营团队需要讨论一些关键的问题: 最佳部署实践是什么? 为了确保应用程序满足它所必须的服务层次我们需要 ...
- debian完整部署 Nginx + uWSGI + Django
手工部署一个Django服务器真心不容易,需要安装很多东西.从头开始搭建服务器,主要是为了梳理一下后续开发中一般为碰到的平台部署.对后续问题的解决有一定帮助. 通常部署有2中方式: 一种是使用现成提供 ...
- debian7下部署nginx服务器
笔者是在vmware中的Debian7下部署nginx服务器,采用离线部署方式.过程如下: 1.准备好需要的离线安装包 nginx-1.6.2.tar.gz,pcre-8.34.tar.gz,open ...
- 在Docker下部署Nginx
在Docker下部署Nginx 在Docker下部署Nginx,包括: 部署一个最简单的Nginx,可以通过80端口访问默认的网站 设置记录访问和错误日志的路径 设置静态网站的路径 通过proxy_p ...
- 自动部署Nginx和nfs并架设Nginx集群脚本
本人经过多次尝试,简单完成了自动部署Nginx和nfs脚本,并且能够自动部署web反向代理集群,下面详细的阐述一下本人的思路.(以下脚本本人处于初学阶段,写的并不是很完善,所以需要后期进行整理和修正, ...
- Linux中以单容器部署Nginx+ASP.NET Core
引言 正如前文提到的,强烈推荐在生产环境中使用反向代理服务器转发请求到Kestrel Http服务器,本文将会实践将Nginx --->ASP.NET Core 部署架构容器化的过程. Ng ...
- Windows Server 2008 R2 Enterprise x64 部署 nginx、tomcat、mysql
部署nginx nginx主要做反向代理用,可以单独部署到其它机器上,这里nginx和tomcat部署在同一台机器上. 下载nginx-1.14.1.zip,并解压到目标目录,打开cmd进入到解压后的 ...
- windows10下面部署nginx(解决文件名中文乱码问题)
由于开发需要,我们总是需要先在windows环境下面部署项目进行测试,通过之后才会移植到linux系统进行测试部署. 本篇文章会介绍一下windows终端下面部署nginx WEB服务的一些步骤流程, ...
- 【原创】大数据基础之Mesos+Marathon+Docker部署nginx
一 安装 安装docker:https://www.cnblogs.com/barneywill/p/10343091.html安装mesos:https://www.cnblogs.com/barn ...
随机推荐
- Centos 7.x 安装 MongoDB
官方安装资料:点击直达 本次以Centos为安装主机 1:首先先导入MongoDB的yum源,因为Centos默认是没有MongoDB的yum源,创建文件:/etc/yum.repos.d/mongo ...
- 关于presentViewController 后调用pushViewController
错误代码: LoginViewController *loginVc = [[LoginViewController alloc] int]; [self presentViewController ...
- Redis安装(centOS7)
1.安装gcc环境 sudo yum install gcc-c++ 2.安装wget sudo yum install wget 3.下载Redis源码包 wget http://download. ...
- matplotlib 知识点13:绘制散点图(scatter函数精讲)
散点图是指在回归分析中,数据点在直角坐标系平面上的分布图,散点图表示因变量随自变量而变化的大致趋势,据此可以选择合适的函数对数据点进行拟合. 用两组数据构成多个坐标点,考察坐标点的分布,判断两变量之间 ...
- 【aspnetcore】模拟中间件处理请求的管道
几个核心对象: ApplicationBuilder 就是startup->Configure方法的第一个参数,请求(HttpContext) 就是由这个类来处理的 HttpContext 这个 ...
- C# 文件操作 全收录 追加、拷贝、删除、移动文件、创建目录、递归删除文件夹及文件....
本文收集了目前最为常用的C#经典操作文件的方法,具体内容如下:C#追加.拷贝.删除.移动文件.创建目录.递归删除文件夹及文件.指定文件夹下 面的所有内容copy到目标文件夹下面.指定文件夹下面的所有内 ...
- VMware下OSSIM 5.2.0的下载、安装和初步使用(图文详解)
不多说,直接上干货! 入门阶段不建议选用最新的版本. 采用OSSIM 4.11 到 OSSIM5.0.3 之间任何版本做实验,sensor的状态都会是“V”. 建议,入门,采用OSSIM5.0.0 ...
- 5、两个栈实现队列------------>剑指offer系列
题目 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 思路 栈1: 用于入队列存储 栈2: 出队列时将栈1的数据依次出栈,并入栈到栈2中 栈2出栈即栈1的底部数据 ...
- Handler消息机制的一些原理(直接用code讲解)——Android开发
package com.example.handlertest; import android.os.Bundle; import android.os.Handler; import android ...
- 洛谷 2543 [AHOI2004]奇怪的字符串
题目描述 输入输出格式 输入格式: 输入文件中包含两个字符串X和Y.当中两字符串非0即1.序列长度均小于9999. 输出格式: X和Y的最长公共子序列长度. 输入输出样例 输入样例#1: 010101 ...