Nginx是非常流行的web服务器,和Apache一样,用它的非常多,感觉比Apache更受欢迎。
推荐几篇文章了解Nginx:
《通俗地解释 CGI、FastCGI、php-fpm 之间的关系》
我们试着在ubuntu中以编译的方式安装Nginx服务器软件。
在安装前,不管你是在阿里云还是腾讯云买的主机,一定要确认下主机所属安全组有没有开放web访问相关端口:80、443。
不然等你完成下面的所有步骤时,还是不能正常访问
在安装nginx前,首先要装几个软件:
为了不受权限的影响,我们切换到root用户操作。
1)gcc安装
安装Nginx我们是源码安装,对源码编译依赖gcc环境,一般Linux默认是安装的
如果没有就试着用apt-get或者yum安装下
apt-get install gcc-c++ yum install gcc-c++
2)PCRE 安装
PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,pcre可以让 Nginx 支持 Rewrite 功能,所以需要在 linux 上安装 pcre 库。
安装它的步骤:
①去官网http://www.pcre.org/获取下载地址
获取pcre-8.42.tar.gz这个版本的下载地址:
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.42.tar.gz
②在Linux中下载
cd /usr/local/src wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.42.tar.gz
注:wget类似于下载工具的命令。
③解压安装
tar zxvf pcre-8.42.tar.gz 解压目录 cd pcre-8.42 进入目录 ./configure 检查编译环境 make && make install 编译安装
pcre-config --version
安装成功。
3)zlib库 安装
zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Linux 上安装 zlib 库。
安装它的步骤:
①去官网http://www.zlib.net获取下载地址
可能因网络的原因,官网没有打开。直接从网上找了一个下载地址:
http://zlib.net/zlib-1.2.11.tar.gz
②
cd /usr/local/src wget http://zlib.net/zlib-1.2.11.tar.gz
使用wget下载
③解压安装
tar zxvf zlib-1.2.11.tar.gz 解压目录 cd zlib-1.2.11 进入目录 ./configure 检查编译环境 make && make install 编译安装
4)OpenSSL 安装
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。
nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要安装 OpenSSL 库。
安装它的步骤:
①去官网https://www.openssl.org/获取下载地址
https://www.openssl.org/source/openssl-1.1.1a.tar.gz
②
cd /usr/local/src wget https://www.openssl.org/source/openssl-1.1.1a.tar.gz
使用wget下载
③解压安装
tar zxvf openssl-1.1.1a.tar.gz 解压目录 cd openssl-1.1.1a 进入目录 ./config 检查编译环境 (目录下没有configure文件) make && make install 编译安装
整个过程装了好久。
以上软件非必须,但为了保证Nginx安装成功,请尽量安装。
注:
centos下可以直接使用yum命令:
yum install gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
一键安装所有命令: yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
ubuntu下有些软件可以使用apt命令,楠神试了下,没有成功,可能是软件名称输入的不正确吧。
Nginx的安装:
①进入官网获取下载地址
我们下载 Stable version(最新的稳定版本):nginx-1.14.2
②下载解压安装
cd /usr/local/src wget http://nginx.org/download/nginx-1.14.2.tar.gz
tar zxvf nginx-1.14.2.tar.gz 解压目录 cd nginx-1.14.2 进入目录 ./configure 检查编译环境 make && make install 编译安装
也可以使用自定义配置:
./configure \ --prefix=/usr/local/nginx \ --conf-path=/usr/local/nginx/conf/nginx.conf \ --pid-path=/usr/local/nginx/conf/nginx.pid \ --lock-path=/var/lock/nginx.lock \ --error-log-path=/var/log/nginx/error.log \ --http-log-path=/var/log/nginx/access.log \ --with-http_gzip_static_module \ --http-client-body-temp-path=/var/temp/nginx/client \ --http-proxy-temp-path=/var/temp/nginx/proxy \ --http-fastcgi-temp-path=/var/temp/nginx/fastcgi \ --http-uwsgi-temp-path=/var/temp/nginx/uwsgi \ --http-scgi-temp-path=/var/temp/nginx/scgi \ --with-http_ssl_module
备注:
--http-client-body-temp-path=/var/temp/nginx/client \ --http-proxy-temp-path=/var/temp/nginx/proxy \ --http-fastcgi-temp-path=/var/temp/nginx/fastcgi \ --http-uwsgi-temp-path=/var/temp/nginx/uwsgi \ --http-scgi-temp-path=/var/temp/nginx/scgi \
单独配置下这5个参数,为临时文件设置单独的存储目录。如果不设置,nginx会自动把这5个目录设置在“/usr/local/nginx”下。因为这5个目录的文件都是临时文件,随时变化,这样整体对nginx安装目录不好设置用户属性和文件权限。
根据楠神实际的经验,把nginx的临时文件目录指定为/var/temp/nginx,比较妥当。前提需要在/var下创建temp及nginx目录。
如果后期需要修改目录,不需要重新编译,直接在配置文件中配置即可。
友情提示:
在以后的使用中,可能会因某些拓展没有编译进去,Nginx需要重新编译,如果之前有make编译后的文件没清理,需要先执行make clean再执行配置和编译。
③找到安装目录
Nginx默认按照目录是/usr/local/nginx
使用
whereis nginx
命令可以查找安装目录
进入nginx目录:
有四个目录
conf:配置目录,里面是各种配置文件
html:默认的网站根目录
logs:日志文件目录
sbin:存放可执行文件的目录
④启动Nginx
进入sbin目录,只有一个可执行文件
./nginx -v 查看Nginx的版本 ./nginx 启动Nginx
查看进程可看到目前Nginx有两个进程:一个主进程,一个工作进程。
主进程是工作进程的父进程。
Nginx的进程已启动,我们看下是不是可以http访问了。
在浏览器输入服务器外网ip
OK,可以访问了。说明Nginx安装成功。