nginx简介
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。我本人亲自使用该服务器搭建过web网站并配置SSL安全证书,下面就向大家详细地介绍一下安装过程(此处以centOS 7系统为例)。
准备工作
一台预装centOS 7的服务器或虚拟机,nginx安装包(可以自行到nginx官网进行下载),使用工具连接到该服务器或虚拟机(我使用的依然是Xshell与Xftp)。
开始安装
- 对下载的nginx源码进行编译需要gcc环境,安装gcc的命令为:
yum install gcc-c++
- PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式。安装PCRE的命令为:
yum install -y pcre pcre-devel
- zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在Linux上安装zlib库。安装命令为:
yum install -y zlib zlib-devel
- nginx不仅支持http协议,还支持https(即在ssl协议上传输http)协议,所以需要在Linux上安装OpenSSL库。OpenSSL是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。安装命令为:
yum install -y openssl openssl-devel
- 本步骤才算进入真正意义上的nginx安装过程。我们用工具(我使用Xftp)将下载好的安装包上传到cent OS服务器或虚拟机,此处我将它上传到了/tmp目录下。
- 我们先进入/tmp目录下查看是否有安装包,此处我使用Xshell。连接到系统后,执行如下命令进入/tmp目录:
然后执行如下命令查看该目录下的所有文件:cd /tmp
依然要确保我们看到列出的文件中有刚才上传的nginx安装包。ll
- 执行命令对安装包进行解压:
tar -xvf 安装包全名
- 创建一个临时文件目录。执行命令:
mkdir -p /var/temp/nginx
- 在解压后的文件中,含有configure的目录下执行:
./configure --prefix=/usr/local/nginx --pid-path=/var/run/nginx/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_stub_status_module --with-http_ssl_module
- 在含有makefile的目录下执行:
make
- 在含有makefile的目录下执行:
make install
- 到此安装过程已经结束,现在我们来启动nginx。先进入sbin目录,执行:
然后执行:cd /usr/local/nginx/sbin
./nginx
- 在上一步中若没有报任何错误,说明启动成功,现在让我们来验证一下,执行一下命令查看nginx进程:
如果看到有3个与nginx相关的进程,则表示启动成功。ps -ef|grep nginx
- 使用外部浏览器查看。首先关闭系统的防火墙,执行:
然后在浏览器地址栏输入该Linux系统的IP地址并回车,即可看到nginx的欢迎界面。此时可以尽情搭建你的web应用了!systemctl stop firewalld
附
- nginx的其他命令(注意在sbin目录下执行哦):
停止:./nginx -s stop
重启:./nginx -s reload
- 我遇到的错误:首次安装完毕,重启系统后再次启动nginx,可能会报如下错误,信息如下:nginx: [error] open() “/var/run/nginx/nginx.pid” failed (2: No such file or directory)。错误原因是在 /var/run/nginx/ 目录下找不到 nginx.pid 文件。
这里附上解决方法:解决该问题,需要我们修改 nginx.conf 文件,指定pid文件所在的目录。先进入/usr/local/nginx/conf/目录下(我使用Xftp工具),编辑nginx配置文件nginx.conf,在配置文件中有个被注释的地方,内容如下:
#pid logs/nginx.pid;
我们先复制这行,然后粘贴至其下一行,并将其修改为:
保存该配置文件。pid /usr/local/nginx/logs/nginx.pid;
接着创建目录,执行如下命令(或者我在Xftp工具中直接手动创建):
最后再启动nginx即可。mkdir /usr/local/nginx/logs
欢迎大佬在评论区进行指正!如果对你有帮助,不妨动动小手点个赞吧,感谢!