作者:Mintimate
Mintimate's Blog,只为与你分享
“Nginx 是一款轻量级的 HTTP 服务器,采用事件驱动的异步非阻塞处理方式框架,这让其具有极好的 IO 性能,时常用于服务端的反向代理和负载均衡。”
Nginx的优点,相信大家基本都知道,这里列举一些:
本次安装Nginx,是在Debian发行版本的Linux上安装,如果是CentOS发行版本Linux,需要注意:
yum
,而不是apt-get
gcc
、pcre
、zlib
以及openssl
推荐的服务器可以选择腾讯云轻量应用服务器:
另外,如果你觉得本文的安装方法过于技术型。其实,也可以试试宝塔面板的一键操作。
Debian使用apt-get作为软件包管理器,所以我们可以使用apt-get直接安装dpkg,进而安装Nginx:
sudo apt-get install nginx
安装完以后,输入whereis nginx
查看Nginx的安装位置,其中的nginx.conf
为Nginx的配置文件。
这样的方法很简单,也十分快但是坏处也很明显:
Docker安装Nginx其实和dpkg安装差不多,在安装了Docker情况下:
# 查找Nginx
docker search nginx
使用命令拉取镜像到本地
docker pull nginx
之后,查看镜像ID:
docker images nginx
根据ID,创建Docker容器,并完成80端口的映射:
docker run -d --name myNginx -p 80:80 d1a
此时,浏览器登陆即可看到Nginx页面:
至于修改镜像,个人推荐把Docker镜像挂载到Linux上进行修改。
总的来说,Docker安装的Nginx,我觉得配置起来,和dpkg安装Nginx
差不多。
手动编译安装Nginx比较复杂,但是平时一般使用最多。原因:
现在就来讲解如何编译安装Nginx。
在这之前,首先确保的软件包没过时:
sudo apt-get update
编译Nginx需要gcc+的环境支持,build-essential内包含gcc+套件,所以我们安装build-essential即可:
sudo apt-get install build-essential
Tips________:你也可以自己编译gcc+
因为nginx.conf中使用了正则表达式,所以编译Nginx时就需要把PCRE库编译进Nginx,而Debian内安装PCRE库,可以这样安装:
sudo apt-get install libpcre3 libpcre3-dev
当热,Nginx编译过程和Http相应过程还需要gzip
格式的压缩,所以我们还需要安装zlib库
用于对HTTP包的内容做gzip格式的压缩,可以这样安装:
sudo apt-get install zlib1g-dev
最后,现在SSL协议很重要,Chrome等主流浏览器,都开始默认相应HTTPS了,所以OpenSSL编译环境也很重要:
sudo apt-get install openssl libssl-dev
另外,如果你不想安装OpenSSL,或者想指定第三方OpenSSL用于编译,可以在Nginx编译时添加编译参数:--with-openssl
接下来,我们下载并解压Nginx的源码,Nginx源码下载官方地址:
http://nginx.org/en/download.html
开发环境,我们使用最新稳定版本Nginx:
# 下载Nginx 1.20.1源码(Stable稳定版本)
wget "http://nginx.org/download/nginx-1.20.1.tar.gz"
# 使用tar命令解压
tar -xf nginx-1.20.1.tar.gz
# 进入解压后出现的目录,已备接下来的编译
cd nginx-1.20.1
首先,我们需要生成makefile文件,编译时候的参数可以参考官方Nginx文档:
http://nginx.org/en/docs/configure.html
我自己编译Nginx时候,选择的参数一般是:
./configure \--prefix=/etc/nginx \--sbin-path=/usr/sbin/nginx \--conf-path=/etc/nginx/nginx.conf \--error-log-path=/var/log/nginx/error.log \--http-log-path=/var/log/nginx/access.log \--pid-path=/var/run/nginx.pid \--lock-path=/var/run/nginx.lock \--http-client-body-temp-path=/var/cache/nginx/client_temp \--http-proxy-temp-path=/var/cache/nginx/proxy_temp \--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \--http-scgi-temp-path=/var/cache/nginx/scgi_temp \--user=www \--group=www \--with-file-aio \--with-threads \--with-http_addition_module \--with-http_auth_request_module \--with-http_dav_module \--with-http_flv_module \--with-http_gunzip_module \--with-http_gzip_static_module \--with-http_mp4_module \--with-http_random_index_module \--with-http_realip_module \--with-http_secure_link_module \--with-http_slice_module \--with-http_ssl_module \--with-http_stub_status_module \--with-http_sub_module \--with-http_v2_module \--with-mail \--with-mail_ssl_module \--with-stream \--with-stream_realip_module \--with-stream_ssl_module \--with-stream_ssl_preread_module
其中:
如果没问题,会显示信息:
Configuration summary
+ using threads
+ using system PCRE library
+ using system OpenSSL library
+ using system zlib library
nginx path prefix: "/etc/nginx"
nginx binary file: "/usr/sbin/nginx"
nginx modules path: "/etc/nginx/modules"
nginx configuration prefix: "/etc/nginx"
nginx configuration file: "/etc/nginx/nginx.conf"
nginx pid file: "/var/run/nginx.pid"
nginx error log file: "/var/log/nginx/error.log"
nginx http access log file: "/var/log/nginx/access.log"
nginx http client request body temporary files: "/var/cache/nginx/client_temp"
nginx http proxy temporary files: "/var/cache/nginx/proxy_temp"
nginx http fastcgi temporary files: "/var/cache/nginx/fastcgi_temp"
nginx http uwsgi temporary files: "/var/cache/nginx/uwsgi_temp"
nginx http scgi temporary files: "/var/cache/nginx/scgi_temp"
之后,执行编译即可:
make && make install
这个时候,我们使用浏览器即可看到Nginx已经可以使用了。
个人推荐安装优先度:
编译安装
>Docker安装
>dpkg安装
原因主要是:
当然,三种方法都是很不错的Nginx安装方法。
这边给大家介绍一些Nginx常用命令:
命令 | 命令含义 |
---|---|
nginx | 打开 nginx |
nginx -t | 测试配置文件是否有语法错误 |
nginx -s reopen | 重启Nginx |
nginx -s reload | 重新加载Nginx配置文件 |
nginx -s stop | 强制停止Nginx服务 |
nginx -s quit | 安全地停止Nginx服务(即处理完所有请求后再停止服务) |
如果想换安装Nginx的安装方式,已经安装的Nginx如何卸载呢?
如果你使用的是dpkg安装的Nginx,安装很简单,卸载也一样:
# 卸载Nginx
sudo apt-get remove nginx
如果你使用Docker安装的Nginx,卸载也很简单:
# 查看Nginx镜像ID
docker images
获取ID后,根据ID卸载即可:
docker rmi d1a3
如果删除失败,比如:
我们先清其依赖:
docker ps -a
docker rm $ID
docker rmi $ID
编译删除Nginx也很简单,首先停止运行Nginx:
# 关闭Nginx
nginx -s quit
# 删除Nginx
sudo rm -rf /etc/nginx
这样Nginx就已经卸载完成了
其实呢?个人是喜欢编译安装Nginx。不过,其实宝塔面板的Nginx也很不错,新版本也可以选择模块编译安装,但是总有些大佬,觉得面板部署没有“灵魂”。这里不过多介绍。
如果你平时喜欢用Docker,可以试试Docker安装,Docker的第三方库,应该是可以安装模块的,或者有集成模块。
Nginx确实是个Web服务器神器呢~~~
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有