nginx 的安装经验(非root用户)

时间:2024-03-23 11:45:39

以nginx用户,nginx-1.10.3.tar.gz压缩包,文件目录/home/nginx/application为例。

下载方式:

下载地址: http://nginx.org/en/download.html

nginx 的安装经验(非root用户)

或者wget http://nginx.org/download/nginx-1.10.3.tar.gz

 

安装准备:

nginx依赖于pcre库,要先安装pcre:

yum install pcre pcre-devel

查看pcre版本:

pcre-config –version

nginx 的安装经验(非root用户)

安装编译工具及库文件:

yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel

 

正式安装:

cd /home/nginx/application

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 查看版本

nginx 的安装经验(非root用户)

2.根据配置的IP查看页面:

nginx 的安装经验(非root用户)

注:如果有配置防火墙,导致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 {

     }

}