参考了《精通Nginx(第二版)》、《Nginx错误日志(error_log)配置及信息详解 》、《Nginx 的配置系统》、《NGINX之三----nginx全局配置、性能优化及Nginx日志改为Json格式 》
1 Nginx的安装
1.1 使用包管理器安装
sudo apt install nginx # Debian Linux
sudo yum install nginx # RedHat Linux
安装以后,如果要查看nginx配置文件的路径,可以使用命令
nginx -t
该命令原本是用于查看nginx配置文件的格式和配置是否正确,但是在结果中能够找到对应的配置文件的路径,例如在我的电脑上会显示出:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
此外也可以通过命令:
nginx -V
通过查找里面的--conf-path
这个配置信息,例如:
nginx version: nginx/1.18.0 (Ubuntu)
built with OpenSSL 1.1.1f 31 Mar 2020
TLS SNI support enabled
configure arguments: --with-cc-opt='-g -O2 -fdebug-prefix-map=/build/nginx-5J5hor/nginx-1.18.0=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wdate-time -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -fPIC' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --modules-path=/usr/lib/nginx/modules --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-compat --with-pcre-jit --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_v2_module --with-http_dav_module --with-http_slice_module --with-threads --with-http_addition_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_image_filter_module=dynamic --with-http_sub_module --with-http_xslt_module=dynamic --with-stream=dynamic --with-stream_ssl_module --with-mail=dynamic --with-mail_ssl_module
如果在nginx启动过程中,显示配置了nginx的配置文件的路径,则可以使用如下命令来查看加载的配置文件的位置:
ps -ef | grep nginx
1.2 从源代码安装
1.2.1 配置
使用源代码安装前,可以自定义很多参数。例如:可以使用参数./configure --prefix=
来指定Nginx安装的根路径,之后所有的路径,包括:sbin、conf等都会在上面指定的文件夹下。
这里记录一些在Ubuntu20.04环境下,当我们安装编译遇到的一些小问题,要解决这些问题除了关闭相应的功能外(就是利用--without-<功能>
参数),就是安装对应的工具包
./configure --prefix=/home//nginx
-
the HTTP rewrite module requires the PCRE library.
使用命令:sudo apt install libpcre3 libpcre3-dev
-
the HTTP gzip module requires the zlib library
sudo apt install zlib1g zlib1g-dev
configure
以后,会在原目录中生成一些文件夹:
-
objs
:存放中间文件
1.2.2 编译
好吧,我竟然没有想到,ubuntu中没有make命令,所以还是要安装一下make
sudo apt install make
之后,就可以使用make
命令进行编译了。执行了之后,就会在刚才的objs
生成编译好的二进制文件和一些中间文件。之所以要知道生成的二进制文件在哪里,是考虑到以后热部署的问题。!
1.2.3 安装
执行命令make install
附1 Nginx与Vim
在下载了Nginx的源码后,可以将contrib/vim/*
下的所有文件拷贝到~/.vim/目录下,这样就能在用vim编辑nginx配置文件的时候,有更好的颜色搭配
cp -r contrib/vim/* ~/.vim/
附2 从源码编译安装Nginx
可以使用如下命令,来查看configure的选项:
./configure --help | more