Nginx服务器的安装与配置

时间:2023-01-15 07:30:12

编译Nginx需要安装GCC编译器

Shell>sudo apt-get install autoconf automake build-essential

模块依赖性:nginx的一些模块需要第三方库支持,例如gzip模块需要zlib库,rewrite模块需要pcre库,ssl功能需要openssl库等。

Shell>sudo apt-get install zlib1g openssl libssl-dev libpcre3 libpcre3-dev 


Nginx安装 

Shell> ./configure \

--prefix=/usr/local/nginx \

--with-http_stub_status_module \

--with-http_ssl_module

Shell>make

Shell>make install


Nginx启动

Shell>./nginx -c /usr/local/nginx/conf/nginx.conf

参数-c指定了配置文件的路径,如果不加-c参数,Nginx会默认加载其安装目录的下的conf子目录中的nginx.conf文件。


查看端口号

shell> sudo lsof -i tcp:80

shell>netstat -ntlp



Nginx关闭

我们使用shell>ps aux | grep nginx 可以看到进程中,有一个为master process 表示主进程,其他为worker process 表示为子进程. 然后直接使用kill 进程号即可.


Nginx的平滑重启配置文件

如果改变了Nginx的配置文件(nginx.conf),为了确认配置文件的语法是否正确,我们可以通过下面命令进行判断:

Shell>/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf

如果配置文件正确,我们可以使用shell>kill -HUP 主进程号; 命令来执行,它会首先解析配置文件,如果成功,就应用新的配置文件。

?
1 sudo
kill
-HUP `cat
/usr/local/nginx/logs/nginx
.pid`



Nginx的信号控制

Nginx支持以下几种信号:

TERM,INT 快速关闭; QUIT 从容关闭; HUP 平滑重启; USR1 重新打开日志文件,在切割日志时用途大; USR2 平滑升级可执行程序; WINCH 从容关闭工作进程;


Nginx的平滑升级

当需要将正在运行中的Nignx升级,添加或删除模块时,可以在不中断服务的情况下进行更新,步骤如下:

1.使用新的可执行程序替换旧的可执行文件,如果是编译安装,则可将新版本的编译安装到旧版本的Nginx安装路径中。

2.发送指令  shell>kill -USR2 旧版本进程号

3.旧版本会自动将进程号重名命为.oldbin,然后执行新版本的Nginx可执行程序。

4.发送信号逐步停止  shell>kill -WINCH 旧版本进程号

5.旧版本慢慢处理所有链接并关闭

6.现在我们可以决定使用新版本还是旧版本 

Shell>kill -HUP 旧进程号   Nginx不重载配置文件启动它的工作进程

Shell>kill -QUIT 新进程号   从容关闭其工作进程

Shell>kill -TERM 新进程号   强制退出