Linux 下部署 NGINX 服务遇到的问题

安装工具:Xshell,Xftp

在 Linux 下部署 nginx 服务的过程中,遇到了很多问题。

我先在论坛上找到了胡锐分享的 Centos 环境 nginx 部署安装指导这个帖子。但是由于他是说的 Centos 环境下 nginx 的部署,我没有把它当做参考。我自己百度找的资料以及 nginx 的安装包,但是在自己找到安装包,进行安装的时候发现这个安装包缺少一个补丁,sticky。

就是 Centos 环境这个帖子中分享的这个压缩包。
image.png
我没有这个压缩包导致我在后面部署的过程中花费了很长的一段时间来解决服务上没有 sticky 的问题。所以这个 session 粘连补丁包不能缺少。

后续我联系了陈总,陈总说就是按照胡锐分享的帖子来部署,我重新按照胡锐的步骤进行部署。

部署过程中,配置 nginx.conf 文件,我根据项目更改了配置
image.png
但是后面的 server 没有修改
image.png
然后后面的一些加# 的我删掉了。所以在按照胡锐分享的部署 nginx 服务之后,用铁建服务的 ip 访问 nginx 健康检查页面,可以访问,但是不能通过 nginx 服务的 ip 访问我们已经部署好的 nginx 服务。

在问题我无法解决的时候,我通过邮件的方式请教了公司达摩院来解决问题,得到了吴科以及金总的帮助。
吴科让我尝试着用 service firewalld stop 命令关闭防火墙,然后再来访问 nginx 服务。但是结果还是不行。
金总是让我先判断 nginx 是否启动成功,可以通过 netstat -anp | grep :80 命令来判断 Nginx 是否启动,如果启动成功的话,看 nginx 的访问日志 ,一般在 log 文件夹 ,文件 access.log ,判断是不是配置问题。
nginx 是启动成功的,最后胡锐远程协助解决这个问题的时候,也发现了是我 nginx.conf 文件配置的问题。
正确的 nginx.conf 文件配置应该是这样:
image.png
upstream uma-unimax-web 中,server 替换为自己项目正式服务的 ip 地址和端口,server 中的 server_name 替换为 nginx 服务的 ip 地址,其他不做改变。

以上就是我在 Linux 下部署 nginx 服务遇到的问题以及解决方式。

总结:
①Linux 中部署 nginx 服务与 centos 基本相同,可以作为参考(centos 是基于 Linux 建立的操作系统,有终端命令界面和图形界面)。
②如果客户给我们的 nginx 服务器 /opt/nginx 是空目录,可能是客户将 conf 文件夹放在了 /usr/local/nginx 中。
③nginx 服务的部署可以访问健康检查页面,不代表服务部署成功,要能通过 nginx 的 ip 地址访问服务才算成功部署。检查是否启动可以使用 netstat -anp | grep :80 命令来判断 Nginx 是否启动,然后查看 nginx 访问日志,一般在 log 文件夹 ,文件 access.log。
④nginx 服务不能访问也有可能是防火墙的问题,使用 service firewalld stop 来关闭防火墙
https://www.cnblogs.com/007sx/p/9501096.html
这个链接是关闭防火墙的一个链接,吴科分享给我,我在这里共享一下。
⑤nginx.conf 配置文件的修改,
upstream 项目名 {
#ip_hash;
sticky;
server 正式服务的 ip: 正式服务的端口;
server 正式服务的 ip: 正式服务的端口;

check interval=3000 rise=2 fall=5 timeout=1000 type=http;
}

server {
listen 80;
server_name nginx 服务的 ip;
#charset koi8-r;
access_log logs/mes-access.log main;
…….
其他不改动。