以nginx用户,nginx-1.10.3.tar.gz压缩包,文件目录/home/nginx/application为例。
下载方式:
下载地址: http://nginx.org/en/download.html
或者wget http://nginx.org/download/nginx-1.10.3.tar.gz
安装准备:
nginx依赖于pcre库,要先安装pcre:
yum install pcre pcre-devel
查看pcre版本:
pcre-config –version
安装编译工具及库文件:
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
正式安装:
wget http://nginx.org/download/nginx-1.10.3.tar.gz或者将压缩包导入到该目录
tar zxvf nginx-1.10.3.tar.gz -C / home/nginx/application
./configure --prefix=/home/nginx/application/nginx
make && make install
注: make && make install因为权限不够安装失败:
需要创建用户后
chown nginx:nginx -R /home/nginx
chown nginx:nginx -R /home/nginx/application/nginx-1.10.3
启动:
cd /home/nginx/application/nginx,,可以看到如下4个目录
....conf 配置文件
... html 网页文件
...logs 日志文件
...sbin 主要二进制程序
使用./sbin/nginx 命令启动
注:以非root权限启动时,会出现 nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied) 错误。
原因:Linux只有root用户可以使用1024以下的端口
解决办法:
1.用root权限启动
2.将nginx.conf文件中的80端口改为1024以上
验证nginx安装启动成功:
1.sbin/nginx -v 查看版本
2.根据配置的IP查看页面:
注:如果有配置防火墙,导致nginx服务开启后无法通过web进行访问,可尝试如下解决方法(例如端口号为10000):
1.//打开防火墙文件
sudo vim /etc/sysconfig/iptables
//新增行 开放10000端口
-A INPUT -p tcp -m state --state NEW -m tcp --dport 10000 -j ACCEPT
保存退出
sudo service iptables restart//重启防火墙
2.开启 web 端口
firewall-cmd --permanent --add-port=10000/tcp
重启 firewall
firewall-cmd –reload
3.或者关闭防火墙systemctl stop firewalld
nginx常见命令:
nginx -s reload # 重新载入配置文件
nginx -s reopen # 重启 Nginx
nginx -s stop # 停止 Nginx
(或者使用nginx信号控制)
Nginx的信号控制:
具体语法: Kill -信号选项 nginx的主进程号
TERM, INT |
Quick shutdown |
QUIT |
Graceful shutdown 优雅的关闭进程,即等请求结束后再关闭 |
HUP |
Configuration reload ,Start the new worker processes with a new configuration Gracefully shutdown the old worker processes 改变配置文件,平滑的重读配置文件 |
USR1 |
Reopen the log files 重读日志,在日志按月/日分割时有用 |
USR2 |
Upgrade Executable on the fly 平滑的升级 |
WINCH |
Gracefully shutdown the worker processes 优雅关闭旧的进程(配合USR2来进行升级) |
Nginx配置(nginx.conf):
// 全局区
worker_processes 1; // 有1个工作的子进程,可以自行修改,但太大无益,因为要争夺CPU,一般设置为 CPU数*核数
Event {
// 一般是配置nginx连接的特性,如1个word能同时允许多少连接
worker_connections 1024; // 这是指 一个子进程最大允许连1024个连接
}
http { //这是配置http服务器的主要段
Server1 { // 这是虚拟主机段
Location { //定位,把特殊的路径或文件再次定位 ,如image目录单独处理
} // 如.php单独处理
}
Server2 {
}
}