Nginx | Nginx的介绍和安装
Nginx 简介
Nginx 是互联网主流的高性能 http 和 反响代理 Web 服务器,Nginx 不但可以作为 Web 服务器,它还提供了静态资源服务、缓存、负载均衡 等功能。
Nginx 有很多模块,并且也有很多程序员及组织参与 Nginx 模块的开发,为 Nginx 添砖加瓦。强大的 Nginx 的组成却并不复杂,它大体由四部分组成。
在中间位置的是 Nginx 的二进制文件,Nginx 的启动需要依赖 nginx.conf 配置文件,当我们使用浏览器访问 Nginx 服务器时,access.log 文件会记录浏览器的请求,当处理请求有错误时会把错误记录都记录到 error.log 文件中。
Nginx 的安装
Nginx 的安装按照步骤和套路基本上就可以了。
1、下载 Nginx 的源代码
[root@localhost ~]# wget https://nginx.org/download/nginx-1.18.0.tar.gz
2、解压源代码
[root@localhost ~]# tar -zxf nginx-1.18.0.tar.gz
3、安装 C 和 C++ 等编译工具
[root@localhost nginx-1.18.0]# yum install -y gcc
[root@localhost pcre-8.40]# yum install -y gcc-c++
[root@localhost pcre-8.40]# yum install -y cmake
4、下载安装 PCRE 依赖
PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。
[root@localhost ~]# wget https://netix.dl.sourceforge.net/project/pcre/pcre/8.40/pcre-8.40.tar.gz
[root@localhost ~]# tar -zxf pcre-8.40.tar.gz
[root@localhost ~]# cd pcre-8.40
[root@localhost pcre-8.40]# ./configure
[root@localhost pcre-8.40]# make && make install
5、生成 Makefile 文件
[root@localhost nginx-1.18.0]# ./configure --prefix=/usr/local/nginx
执行这步时,我这里有一个报错,提示如下:
./configure: error: the HTTP gzip module requires the zlib library.You can either disable the module by using --without-http_gzip_moduleoption, or install the zlib library into the system, or build the zlib librarystatically from the source with nginx by using --with-zlib=option.
这个报错提示是因为我本地没有安装 zlib 库,因此无法编译 http_gzip_module 模块,因此我们忽略这个模块的编译。
[root@localhost nginx-1.18.0]# ./configure --prefix=/usr/local/nginx --without-http_gzip_module
在执行完 ./configure 命令后,进入 objs 目录下,查看 ngx_module.c 文件,该文件中给出了准备要被编译进 Nginx 二进制文件中的模块,部分代码如下:
extern ngx_module_t ngx_core_module;
extern ngx_module_t ngx_errlog_module;
extern ngx_module_t ngx_conf_module;
extern ngx_module_t ngx_regex_module;
extern ngx_module_t ngx_events_module;
extern ngx_module_t ngx_event_core_module;
extern ngx_module_t ngx_epoll_module;
6、编译安装 Nginx
[root@localhost nginx-1.18.0]# make[root@localhost nginx-1.18.0]# make install
7、配置 nginx.service 文件
为了使用 systemctl 来管理 nginx 的启动、关闭等操作,需要创建一个 nginx.service 文件。
[root@localhost nginx]# touch /usr/lib/systemd/system/nginx.service[root@localhost nginx]# vim /usr/lib/systemd/system/nginx.service
nginx.service 文件的配置如下:
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
8、管理 Nginx 的启动与停止
启动 Nginx
[root@localhost nginx]# systemctl start nginx.service
停止 Nginx
[oot@localhost nginx]# systemctl stop nginx.service
重启 Nginx 服务
[root@localhost nginx]# systemctl reload nginx.service
查看 Nginx 的状态
[root@localhost nginx]# sytemctl status nginx.service
在我们启动 Nginx 后,有可能会报错,这时使用 status 也可以查看 Nginx 的启动失败的原因。
设置 Nginx 开机启动
[root@localhost nginx]# systemctl enable nginx.service
禁止 Nginx 开机启动
[root@localhost nginx]# systemctl disable nginx.service
9、关闭防火墙
如果是新安装的 CentOS 7 系统,系统会开启防火墙,我们需要停止防火墙或者配置防火墙的策略。这里我们选择关闭防火墙。
[root@localhost nginx]# systemctl stop firewalld
10、访问 Nginx
打开浏览器,输入虚拟机的 IP 地址,就可以访问我们的 Nginx 提供的默认页面了。
- 两部委印发车联网产业标准体系建设指南 提到了自动驾驶
- 状态开关按钮ToggleButton
- 微软开放 .NET 框架源代码
- Angularjs基础(十二)
- 妙趣横生的HTML5 Page Visibility API
- 禁止/移除 WordPress 4.2 中前台自动加载的 emjo 脚本
- 项目管理方面的几个.NET开源项目
- 如何向十岁以下的朋友解释编程?这个说法碉堡了!
- 快速比较和合并文件
- 前端页面中 iOS 版微信长按识别二维码的bug 与解决方案
- .NET Mass Downloader -整体下载.NET源码
- Android中Button
- Pycharm中一些不为人知的技巧
- Silverlight 2.0 beta1 堆栈
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- CentOS7 下安装telnet服务的实现方法
- Linux内核启动参数详解
- CentOS6.3添加nginx系统服务的实例详解
- Linux中在防火墙中开启80端口方法示例
- Apache 获取真实ip的配置的实现方法
- Linux下文件的切分与合并的简单方法介绍
- ubuntu 系统上为php加上redis 扩展的实现方法
- deepin linux 手动升级内核的方法
- UGL之单色位图
- Linux网络启动问题:Device does not seem to be present解决办法
- UGL之透明位图
- 关于ISR
- python 井字棋-文字版(下)
- Linux下nginx生成日志自动切割的实现方法
- Centos 7.2中双网卡绑定及相关问题踩坑记录