系统环境:CentOS7最小化安装
软件:nginx-1.10.2.tar.gz
nginx所需软件: openssl-1.0.2j.tar.gz(https服务),
zlib-1.2.9.tar.gz(gzip压缩功能),
pcre-8.39.tar.gz(rewrite功能)
其他所需的软件 perl-5.16.1.tar.gz(安装openssl需要先安装perl5)
安装方式:源码编译安装
安装位置:/usr/local/nginx
下载地址:http://nginx.org/en/download.html
安装gcc和g++ yum install -y gcc gcc-c++
安装perl5
下载地址:http://www.cpan.org/src/5.0/perl-5.16.1.tar.gz
tar -zxfv perl-5.16.1.tar.gz
cd perl-5.16.1
./Configure -des -D prefix=/usr/local/perl
make && make install
安装openssl
下载地址:https://www.openssl.org/source/
tar -zxfv openssl-1.0.2j.tar.gz
cd openssl-1.0.2j
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl/conf
make && make install
安装pcre
下载地址: http://www.pcre.org/
tar -zxfv pcre-8.39.tar.gz
cd pcre-8.39
./configure --prefix=/usr/local/pcre/
make && make install
安装zlib
下载地址:https://sourceforge.net/projects/libpng/files/zlib/zlib-1.2.9.tar.gz
tar -zxfv zlib-1.2.9.tar.gz
cd zlib-1.2.9
./configure --prefix=/usr/local/zlib/
make && make install
安装nginx软件
#添加www用户和组
groupadd nginx
useradd -g nginx nginx
配置(使用openssl、pcre、zlib的源码路径)
./configure \
--user=nginx \
--group=nginx \
--prefix=/usr/local/nginx \
--with-http_ssl_module \
--with-openssl=/usr/local/package/openssl-1.0.2j \
--with-pcre=/usr/local/package/pcre-8.39 \
--with-zlib=/usr/local/package/zlib-1.2.9 \
--with-http_stub_status_module \
--with-threads
make && make install
修改配置文件: vi /usr/local/nginx/conf/nginx.conf
启动: /usr/local/nginx/sbin/nginx
重启: /usr/local/nginx/sbin/nginx -s reload
刚安装好nginx一个常见的问题是无法站外访问,很可能是被CentOS的防火墙把80端口拦住了,尝试执行以下命令,打开80端口:
打开80端口有两种方法
firewall-cmd方法
firewall-cmd --zone=public --add-port=80/tcp --permanent 开启80端口
firewall-cmd --zone= public --remove-port=80/tcp --permanent 关闭80端口
firewall-cmd --complete-reload 更新防火墙规则(立即生效)
systemctl restart firewalld.service 重启防火墙
iptables方法 /sbin/iptables 或者 iptables
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
iptables -L INPUT --line-numbers 查看现在的规则
iptables -D INPUT 3 删除第三条
chkconfig iptables on 永久生效
这里用的是firewall-cmd方法
vi /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
设置开机启动: systemctl enable nginx.service
重启nginx
以下是其他的一些操作命令
停止开机启动: systemctl disable nginx.service
启动nginx服务: systemctl start nginx.service
查看服务当前状态: systemctl status nginx.service
重新启动服务: systemctl restart nginx.service
查看所有已启动的服务: systemctl list-units --type=service
参考 http://www.cnblogs.com/zhoulf/archive/2013/02/09/2909653.html