Write the Code. Change the World.

6月 03

编译环境

在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

https://segmentfault.com/a/1190000007116797

http://www.zhaoweihua.cn/article/30/nginx1.11-centos7.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注