Nginx是一款面向性能设计的HTTP服务器,相较于Apache、lighttpd具有占有内存少,稳定性高等优势。Nginx不采用每客户机一线程的设计模型,而是充分使用异步逻辑从而削减了上下文调度开销,所以并发服务能力更强。整体采用模块化设计,有丰富的模块库和第三方模块库,配置灵活。 在Linux操作系统下,Nginx使用epoll事件模型,得益于此,Nginx在Linux操作系统下效率相当高。同时Nginx在OpenBSD或FreeBSD操作系统上采用类似于epoll的高效事件模型kqueue。
本文将教你在腾讯云CVM服务器Linux服务器上安装Nginx服务软件。并检查其是否正常运行。在安装上,我们分为两种方式,直接使用系统的程序包安装,或采用编译的方式去安装。推荐有需要的同学去腾讯云开发者实验室免费领取实验机器动手实践。当然,感兴趣的小伙伴也可以去购买一台服务器以便长期学习使用。
连接服务器
首先检查你的服务器安全组设置,确保其开放22和80端口。然后我们通过SSH软件登录服务器,如果你本地电脑是Windows情况下可以使用putty等软件,Linux及MacOS请使用终端进行连接。
这里以MobaXterm的终端软件为例,点击左上角的Session
按钮,选择以SSH
方式连接,在Remote host
输入你的服务器的公网IP地址,Specify username
输入你的用户名,如果你的服务器是Ubuntu系统,请输入ubuntu
如果是CentOS系统则输入root
。这里我们是Ubuntu系统,所以我们输入ubuntu
。
点击OK
后,输入你设置的密码(默认不显示),即可连接到你的服务器,你会看到类似下面的页面。
这样,你就进到你所购买的服务器页面了。
使用apt或yum包管理工具进行安装(推荐)
这里安装分操作系统,如果你使用的是Ubuntu系统,那么可以通过apt install nginx
命令直接安装,如果你使用的是CentOS操作系统,那么则可以通过yum install nginx
命令进行安装。
Ubuntu系统(apt工具安装)
注:在腾讯云购买的服务器默认使用
ubuntu
账户登录,若想使用root
权限执行相关命令,则需要在命令前加sudo
命令。
首先,我们需要使用sudo apt-get update
更新当前系统下apt包管理器的列表。然后使用sudo apt-get install nginx
命令安装Nginx软件。
sudo apt-get update
sudo apt-get install nginx
输入完sudo apt-get update
你会看到如下输出
ubuntu@VM-0-7-ubuntu:~$ sudo apt-get update
Hit:1 http://mirrors.tencentyun.com/ubuntu xenial InRelease
Hit:2 http://mirrors.tencentyun.com/ubuntu xenial-security InRelease
Hit:3 http://mirrors.tencentyun.com/ubuntu xenial-updates InRelease
Reading package lists... Done
之后,我们输入sudo apt-get install nginx
,得到如下输出
ubuntu@VM-0-7-ubuntu:~$ sudo apt-get install nginx
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
fontconfig-config fonts-dejavu-core libfontconfig1 libgd3 libjbig0
libjpeg-turbo8 libjpeg8 libtiff5 libvpx3 libxpm4 nginx-common nginx-core
Suggested packages:
libgd-tools fcgiwrap nginx-doc ssl-cert
The following NEW packages will be installed:
fontconfig-config fonts-dejavu-core libfontconfig1 libgd3 libjbig0
libjpeg-turbo8 libjpeg8 libtiff5 libvpx3 libxpm4 nginx nginx-common
nginx-core
0 upgraded, 13 newly installed, 0 to remove and 0 not upgraded.
Need to get 2,857 kB of archives.
After this operation, 9,307 kB of additional disk space will be used.
Do you want to continue? [Y/n]
这里询问我们是否安装,我们按下键盘上的Y
,然后按下回车键,之后,你会看到类似如下输出:
Get:1 http://mirrors.tencentyun.com/ubuntu xenial-security/main amd64 libjpeg-tu
.........
Processing triggers for ufw (0.35-0ubuntu2) ...
ubuntu@VM-0-7-ubuntu:~$
注:
.........
为省略,省略多行命令。
这时,你的Ubuntu系统就已经完整安装好Nginx软件了,现在我么访问你的服务器IPhttp://你的域名/,如果你看到如下输出,证明你已经成功安装Nginx。
CentOS系统(yum工具安装)
在CentOS系统下,也可以使用yum包管理工具进行安装,和ubuntu一样,我们先更新系统软件,使用yum update
命令进行升级。你会看到下面的输出
Loaded plugins: fastestmirror, langpacks
Determining fastest mirrors
epel 12741/12741
Resolving Dependencies
--> Running transaction check
---> Package NetworkManager.x86_64 1:1.10.2-13.el7 will be updated
---> Package NetworkManager.x86_64 1:1.10.2-16.el7_5 will be an update
---> Package NetworkManager-libnm.x86_64 1:1.10.2-13.el7 will be updated
......
util-linux.x86_64 0:2.23.2-52.el7_5.1 vdo.x86_64 0:6.1.0.168-18
yum-plugin-fastestmirror.noarch 0:1.1.31-46.el7_5 yum-utils.noarch 0:1.1.31-46.el7_5
Complete!
接下来,我们安装Nginx软件。可以使用yum install nginx
命令来进行安装。同样,会询问我们是否安装,我们按下键盘上的Y
,然后按下回车键,之后,你会看到类似如下输出:
Downloading packages:
(1/21): fontpackages-filesystem-1.44-8.el7.noarch.rpm | 9.9 kB 00:00:00
(2/21): gd-2.0.35-26.el7.x86_64.rpm | 146 kB 00:00:00
(3/21): fontconfig-2.10.95-11.el7.x86_64.rpm | 229 kB 00:00:00
.......
nginx-mod-http-geoip.x86_64 1:1.12.2-2.el7 nginx-mod-http-image-filter.x86_64 1:1.12.2-2.el7
nginx-mod-http-perl.x86_64 1:1.12.2-2.el7 nginx-mod-http-xslt-filter.x86_64 1:1.12.2-2.el7
nginx-mod-mail.x86_64 1:1.12.2-2.el7 nginx-mod-stream.x86_64 1:1.12.2-2.el7
Complete!
Nginx在CentOS上默认没有启动,我们需要输入nginx
命令进行启动,如下
[root@VM_0_7_centos ~]# nginx
[root@VM_0_7_centos ~]#
现在,打开浏览器访问你的服务器IPhttp://你的域名/,如果你看到如下输出,证明你已经成功安装Nginx。
编译安装
Ubuntu
apt包管理器默认的Nginx版本可能过旧,这时我们就需要进行编译安装了,这样能确保我们安装的Nginx是最新版。
首先,我们需要使用sudo apt-get update
更新当前系统下apt包管理器的列表。然后我们需要安装相关编译环境。可以使用下面的命令进行安装
sudo apt-get update
libpcre3 libpcre3-dev zlib1g-dev openssl libssl-dev
同样,执行命令过程中会询问我们是否进行安装,我们按下键盘上的Y
,然后按下回车键,之后,你会看到类似如下输出:
Get:1 http://mirrors.tencentyun.com/ubuntu xenial-updates/main amd64 x11-common all 1:7.7 13ubuntu3.1 [22.9 kB]
Get:2 http://mirrors.tencentyun.com/ubuntu xenial/main amd64 libice6 amd64 2:1.0.9-1 [39.2 kB]
........
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for libc-bin (2.23-0ubuntu10) ...
这时,我们的基本编译环境就安装完成了。接下来我们需要下载Nginx源码包,并编译源码。本文撰写日期最新版的Nginx版本是1.15.5
,您可以从Nginx官网http://nginx.org/download/获得最新的下载链接。复制你要获取版本的链接,这里我们已nginx-1.15.5.tar.gz
版本为例。使用下面的命令获取安装包,并解压然后进入Nginx源码包目录。
wget http://nginx.org/download/nginx-1.15.5.tar.gz
tar -zxvf nginx-1.15.5.tar.gz
cd nginx-1.15.5
输入ls
命令,你会看到类似下面的输出。
ubuntu@VM-0-7-ubuntu:~$ cd nginx-1.15.5/
ubuntu@VM-0-7-ubuntu:~/nginx-1.15.5$ ls
auto CHANGES CHANGES.ru conf configure contrib html LICENSE man README src
ubuntu@VM-0-7-ubuntu:~/nginx-1.15.5$
接下来,我们就可以开始编译了。我们输入./configure
,系统会检查你当前系统的环境,确保其无任何报错。看到下面报错证明无问题,否则请重新安装上面所述的软件。
Configuration summary
using system PCRE library
OpenSSL library is not used
using system zlib library
nginx path prefix: "/usr/local/nginx"
nginx binary file: "/usr/local/nginx/sbin/nginx"
nginx modules path: "/usr/local/nginx/modules"
nginx configuration prefix: "/usr/local/nginx/conf"
nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
nginx pid file: "/usr/local/nginx/logs/nginx.pid"
nginx error log file: "/usr/local/nginx/logs/error.log"
nginx http access log file: "/usr/local/nginx/logs/access.log"
nginx http client request body temporary files: "client_body_temp"
nginx http proxy temporary files: "proxy_temp"
nginx http fastcgi temporary files: "fastcgi_temp"
nginx http uwsgi temporary files: "uwsgi_temp"
nginx http scgi temporary files: "scgi_temp"
接下来我们输入sudo make
开始进行编译,你会看到类似如下输出
ubuntu@VM-0-7-ubuntu:~/nginx-1.15.5$ sudo make
make -f objs/Makefile
make[1]: Entering directory '/home/ubuntu/nginx-1.15.5'
cc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs
-o objs/src/core/nginx.o
.......
-e "s|%%ERROR_LOG_PATH%%|/usr/local/nginx/logs/error.log|"
< man/nginx.8 > objs/nginx.8
make[1]: Leaving directory '/home/ubuntu/nginx-1.15.5'
这样就编译完成了,接下来我们进行安装。我们输入下面的命令sudo make install
,会看到如下输出。
ubuntu@VM-0-7-ubuntu:~/nginx-1.15.5$ sudo make install
make -f objs/Makefile install
make[1]: Entering directory '/home/ubuntu/nginx-1.15.5'
test -d '/usr/local/nginx' || mkdir -p '/usr/local/nginx'
test -d '/usr/local/nginx/sbin'
|| mkdir -p '/usr/local/nginx/sbin'
test ! -f '/usr/local/nginx/sbin/nginx'
|| mv '/usr/local/nginx/sbin/nginx'
'/usr/local/nginx/sbin/nginx.old'
.........
test -d '/usr/local/nginx/logs'
|| mkdir -p '/usr/local/nginx/logs'
make[1]: Leaving directory '/home/ubuntu/nginx-1.15.5'
接下来,我们执行下面的命令就可以开启最新的nginx服务啦~
代码语言:txt复制sudo /usr/local/nginx/sbin/nginx
现在我么访问你的服务器IPhttp://你的域名/,如果你看到如下输出,证明你已经成功安装Nginx。
CentOS
同样,我们也可以在CentOS编译安装Nginx,首先,我们需要安装编译环境,可以使用下面的命令进行安装。
代码语言:txt复制yum install gcc gcc-c autoconf automake make
yum install pcre
yum install pcre-devel
yum install -y zlib
yum install -y zlib-devel
接下来我们需要下载Nginx源码包,并编译源码。本文撰写日期最新版的Nginx版本是1.15.5
,您可以从Nginx官网http://nginx.org/download/获得最新的下载链接。复制你要获取版本的链接,这里我们已nginx-1.15.5.tar.gz
版本为例。使用下面的命令获取安装包,并解压然后进入Nginx源码包目录。
wget http://nginx.org/download/nginx-1.15.5.tar.gz
tar -zxvf nginx-1.15.5.tar.gz
cd nginx-1.15.5
输入ls
命令,你会看到类似下面的输出。
ubuntu@VM-0-7-ubuntu:~$ cd nginx-1.15.5/
ubuntu@VM-0-7-ubuntu:~/nginx-1.15.5$ ls
auto CHANGES CHANGES.ru conf configure contrib html LICENSE man README src
ubuntu@VM-0-7-ubuntu:~/nginx-1.15.5$
接下来,我们就可以开始编译了。我们输入./configure
,系统会检查你当前系统的环境,确保其无任何报错。看到下面报错证明无问题,否则请重新安装上面所述的软件。
Configuration summary
using system PCRE library
OpenSSL library is not used
using system zlib library
nginx path prefix: "/usr/local/nginx"
nginx binary file: "/usr/local/nginx/sbin/nginx"
nginx modules path: "/usr/local/nginx/modules"
nginx configuration prefix: "/usr/local/nginx/conf"
nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
nginx pid file: "/usr/local/nginx/logs/nginx.pid"
nginx error log file: "/usr/local/nginx/logs/error.log"
nginx http access log file: "/usr/local/nginx/logs/access.log"
nginx http client request body temporary files: "client_body_temp"
nginx http proxy temporary files: "proxy_temp"
nginx http fastcgi temporary files: "fastcgi_temp"
nginx http uwsgi temporary files: "uwsgi_temp"
nginx http scgi temporary files: "scgi_temp"
接下来我们输入sudo make
开始进行编译,你会看到类似如下输出
ubuntu@VM-0-7-ubuntu:~/nginx-1.15.5$ sudo make
make -f objs/Makefile
make[1]: Entering directory '/home/ubuntu/nginx-1.15.5'
cc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs
-o objs/src/core/nginx.o
.......
-e "s|%%ERROR_LOG_PATH%%|/usr/local/nginx/logs/error.log|"
< man/nginx.8 > objs/nginx.8
make[1]: Leaving directory '/home/ubuntu/nginx-1.15.5'
这样就编译完成了,接下来我们进行安装。我们输入下面的命令sudo make install
,会看到如下输出。
ubuntu@VM-0-7-ubuntu:~/nginx-1.15.5$ sudo make install
make -f objs/Makefile install
make[1]: Entering directory '/home/ubuntu/nginx-1.15.5'
test -d '/usr/local/nginx' || mkdir -p '/usr/local/nginx'
test -d '/usr/local/nginx/sbin'
|| mkdir -p '/usr/local/nginx/sbin'
test ! -f '/usr/local/nginx/sbin/nginx'
|| mv '/usr/local/nginx/sbin/nginx'
'/usr/local/nginx/sbin/nginx.old'
.........
test -d '/usr/local/nginx/logs'
|| mkdir -p '/usr/local/nginx/logs'
make[1]: Leaving directory '/home/ubuntu/nginx-1.15.5'
接下来,我们执行下面的命令就可以开启最新的nginx服务啦~
代码语言:txt复制sudo /usr/local/nginx/sbin/nginx
现在我么访问你的服务器IPhttp://你的域名/,如果你看到如下输出,证明你已经成功安装Nginx。
总结
现在你已经成功通过四种方式安装Nginx软件,学会了吗?如果你打算长时间使用,可以推荐你使用腾讯云的建站主机进行配置,独享 CPU、内存、带宽、硬盘等资源,拥有独立 IP 和超大空间,预装网站开发所需的应用环境,并且提供域名绑定、部署 SSL 证书等便捷操作,即买即用,一站式完成应用的搭建。