1 使用Nginx的必备软件
如果要使用Nginx的常用功能,那么首先需要确保该操作系统上至少安装如下软件:
1.1 gcc、g++编译器
ubuntu平台在线安装指令:
sudo apt-get install gcc sudo apt-get install g++ sudo apt-get install build-essential sudo apt-get install libtool
centos平台在线安装指令:
yum -y install gcc automake autoconf libtool make yum install gcc gcc-c++
1.2 PCRE库
PCRE(Perl Compatible Regular Expressions中文含义:perl语言兼容正则表达式)是一个用C语言编写的正则表达式函数库,由菲利普.海泽(Philip Hazel)编写。
PCRE是一个轻量级的函数库,比Boost之类的正则表达式库小得多。PCRE十分易用,同时功能也很强大,性能超过了POSIX正则表达式库和一些经典的正则表达式库。
因为在Nginx配置文件nginx.conf里使用了正则表达式,所以编译时必须把PCRE库编译进Nginx,因为Nginx的HTTP模块要靠它来解析正则表达式。
PCRE库源码包下载地址:ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/
编译和安装PCRE库相关命令:
tar -zxvf pcre-8.39.tar.gz cd pcre-8.39/ ./configure make sudo make install
3 zlib库
zlib是提供数据压缩用的函式库,zlib能使用一个gzip数据头,zlib数据头或者不使用数据头压缩数据。
因为在Nginx配置文件nginx.conf配置了gzip on,并指定了某些类型(content-type)的HTTP响应使用gzip来进行压缩以减少网络传输量,所以编译时必须把zlib库编译进Nginx。
zlib 源码包下载地址:http://zlib.net/zlib-1.2.8.tar.gz
编译和安装zlib库相关命令:
tar -zxvf zlib-1.2.8.tar.gz cd zlib-1.2.8/ ./configure make sudo make install
1.4 OpenSSL开发库
OpenSSL 是一个安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。
SSL是Secure Sockets Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。Netscape公司在推出第一个Web浏览器的同时,提出了SSL协议标准。其目标是保证两个应用间通信的保密性和可靠性,可在服务器端和用户端同时实现支持,已经成为Internet上保密通讯的工业标准。
OpenSSL源码包下载地址:https://www.openssl.org/source/
编译和安装OpenSSL开发库相关命令:
tar -zxvf openssl-1.0.1t.tar.gz cd openssl-1.0.1t/ ./config make sudo make install
2 Nginx的安装和启动
2.1 编译安装Nginx
Nginx源码包下载地址:http://nginx.org/en/download.html
编译和安装Nginx相关命令:
tar -zxvf nginx-1.10.1.tar.gz cd nginx-1.10.1/ ./configure make sudo make install
报错:在make和sudo make install这步经常会报错,我在这报了两个错误,已修改完毕,给各位参考
https://blog.csdn.net/weixin_45525272/article/details/107794364
2.2 Nginx的启动和关闭
默认情况下,Nginx被安装在目录/usr/local/nginx中:
其中,其中Nginx的配置文件存放于conf/nginx.conf,bin文件是位于sbin目录下的nginx文件。
1)默认方式启动Nginx服务器
sudo /usr/local/nginx/nginx
这时,会自动读取配置文件:/usr/local/nginx/conf/nginx.conf
打开浏览器访问此机器的IP,如果浏览器出现 Welcome to nginx! 则表示 Nginx 已
经安装并运行成功:
2)指定配置文件启动服务器
sudo /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
3)测试配置信息
sudo /usr/local/nginx/sbin/nginx -t • 1 • 2
4)快速停止服务(不等待直接全部关闭)
sudo /usr/local/nginx/sbin/nginx -s stop • 1 • 2
5)优雅停止服务(等待进程结束在关闭)
sudo /usr/local/nginx/sbin/nginx -s quit
快速停止服务和优雅停止服务的区别:
当快速停止服务时,worker进程与master进程在收到信号立即退出进程。
当优雅停止服务时,首先会关闭监听端口,停止接收新的连接,然后把当前正在处理的连接全部处理完,最后再退出进程。
简单粗暴的停止方法
可以直接发送QUIT信号给master进程来停止服务,其效果与执行-s quit命令时一样的:
sudo kill -s SIGQUIT pid_master
可以通过发送WINCH信号给worker进程来停止服务:
sudo kill -s SIGWINCH pid_worker
6)使运行中的Nginx重读配置项并生效
sudo /usr/local/nginx/sbin/nginx -s reload 或者 sudo kill -s SIGHUP pid_master
2.3 日志文件
默认情况下,Nginx日志文件存放目录:/usr/local/nginx/logs
- error.log:错误日志,服务器启动出错时可以在此日志查找原因
- access.log:访问日志,记录客户端连接服务器后一些访问信息