编译环境
在linux使用make方式安装,需要保证linux已经具备比较OK的编译环境,例如gcc等编译工具。一般而言,服务器提供商在安装的系统中已经默认集成了这些软件,但是为了保险起见,我们还是通过一些较为基础的方式,把这些依赖包都跑一遍,以防在之后的编译中出差错。
yum -y install gcc gcc-c++ autoconf automake libtool make cmake
yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel
zlib
为nginx提供gzip模块,需要zlib库支持
openssl
为nginx提供ssl功能
pcre
为支持地址重写rewrite功能
创建用来运行nginx的用户和组
我们创建一个新的用户组和用户来运行服务,这样可以把nginx和root分开,保证nginx不具备root权限。但是,我们并不希望nginx成为一个真实的可以登陆到远程进行操作的用户,所以,我们并不给它创建home目录,在useradd的时候,用-M参数:
groupadd nginx
useradd -g nginx -M nginx
-g
参数为nginx用户指定了一个组。-M
参数保证其不自动生成home目录。
但通过上面的用户创建之后,nginx用户可以通过设置一个密码登陆到服务器,这个不是我们想要的,我们禁用它的ssh登陆权限.禁止用户登陆也很方便,只需要修改配置文件中有关用户和用户组的信息即可。
vi /etc/passwd
找到www,将后面的/bin/bash改为/sbin/nologin即可。
下载最新版本的Nginx,并解压,配置,安装。
所有nginx的下载地址: http://nginx.org/en/download.html
有主线版本和稳定版本。当前稳定版本是 nginx1.12.0
通过源码包编译安装的软件,通常都放在 /usr/local/src/包名
路径下(安装完成后,解压的包可以删除)。我们也可以这样做。
cd /usr/local/src/nginx
wget http://nginx.org/download/nginx-1.12.0.tar.gz
tar xzvf nginx-1.12.0.tar.gz
cd nginx-1.12.0
现在,用 ./configure
进行配置。主要是安装目录以及功能模块的配置。个人喜欢把service功能安装在 /alidata/service/
下。
./configure --prefix=/alidata/service/nginx
--pid-path=/alidata/service/nginx/run/nginx.pid
--with-http_ssl_module
--with-http_stub_status_module
--with-pcre
--user=nginx
--group=nginx
prefix
是安装目录
with
这些是要开启的模块
配置的结果:
Configuration summary
+ using system PCRE library
+ using system OpenSSL library
+ using system zlib library
nginx path prefix: "/alidata/service/nginx"
nginx binary file: "/alidata/service/nginx/sbin/nginx"
nginx modules path: "/alidata/service/nginx/modules"
nginx configuration prefix: "/alidata/service/nginx/conf"
nginx configuration file: "/alidata/service/nginx/conf/nginx.conf"
nginx pid file: "/alidata/service/nginx/run/nginx.pid"
nginx error log file: "/alidata/service/nginx/logs/error.log"
nginx http access log file: "/alidata/service/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"
配置好了,现在进行编译安装。
make && make install
cd /alidata/service/nginx/
sbin/nginx
sbin/nginx
是启动nginx
/alidata/service/nginx/sbin/nginx #启动
/alidata/service/nginx/sbin/nginx -s stop #停止
/alidata/service/nginx/sbin/nginx -s reload #重启nginx
启动nginx后,可以通过 ps -aux|grep nginx
来查看进程。
启动后,在浏览器中输入外网ip,如果能看到下边的图片。表示nginx已经安装启动成功了。
或终端中输入命令 curl 127.0.0.1
能看到nginx的欢迎html代码。
安装启动后,还需要做一件事情,就是开机自启动。
配置开机自启动
切换到 /lib/systemd/system/
目录,创建 nginx.service
文件 vi nginx.service
编辑nginx.service。
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/alidata/service/nginx/sbin/nginx
ExecReload=/alidata/service/nginx/sbin/nginx reload
ExecStop=/alidata/service/nginx/sbin/nginx quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
保存,并退出。再执行 systemctl enable nginx.service
激活重启自启动功能
systemctl enable nginx.service
systemctl start nginx.service
启动nginx
systemctl stop nginx.service
结束nginx
systemctl restart nginx.service
重启nginx
参考文章
https://segmentfault.com/a/1190000004123048