参考:https://blog.csdn.net/w410589502/article/details/70787468https://www.cnblogs.com/xxoome/p/5866475.htmlhttps://www.cnblogs.com/bluestorm/p/4574688.htmlhttps://blog.51cto.com/u_13363488/2349546https://blog.csdn.net/qq_20143059/article/details/114935719
下载nginx地址:https://nginx.org/download/

安装所需插件

  1. yum install -y pcre pcre-devel openssl openssl-devel gcc gcc gcc-c++ ncurses-devel perl

下载nginx安装包

  1. wget http://nginx.org/download/nginx-1.9.9.tar.gz

解压

  1. tar -zxvf nginx-1.9.9.tar.gz

更改文件名称

  1. mv nginx-1.9.9 nginx

配置、编译、安装

  1. cd /usr/local/nginx
  2. ./configure # 配置
  3. # ssl的证书需要按照下面进行配置
  4. ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
  5. make # 编译
  6. make install # 安装

image.png

注意:如果你走到make这一步的时候只出现了一行“make[1]: Leaving directory `/usr/local/nginx-1.12.1;”提示,不用管它,继续走make install ; 然后: 1、我只需要去看/usr/local下面是否有nginx文件夹? 2、如果已经有nginx文件夹? 3、我们再去看nginx是否可以正常启动? 4、如果nginx启动也可以成功,我们再去看下网站是否可以访问,是否会出现“Welcome to nginx!”? 5、如果上面都成功了,说明你的nginx已经ok!

测试是否安装成功

  1. # cd到刚才配置的安装目录/usr/loca/nginx/
  2. ./sbin/nginx -t

错误信息

  1. nginx: [alert] could not open error log file: open() "/usr/local/nginx/logs/error.log" failed (2: No such file or directory)
  2. 2016/09/13 19:08:56 [emerg] 6996#0: open() "/usr/local/nginx/logs/access.log" failed (2: No such file or directory)

原因分析:nginx/目录下没有logs文件夹

解决方法:

  1. mkdir logs
  2. chmod 700 logs

正常情况的信息输出:

  1. nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
  2. nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

查找安装路径命令:

  1. whereis nginx

启动、停止nginx

  1. cd /usr/local/nginx/sbin/
  2. ./nginx # 开启
  3. ./nginx -s stop # 停止
  4. ./nginx -s quit
  5. ./nginx -s reload

./nginx -s quit:此方式停止步骤是待nginx进程处理任务完毕进行停止。./nginx -s stop:此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。

强制杀死进程

1、查看进程号

  1. ps -ef|grep nginx

image.png
2、杀死进程

  1. # 第一种
  2. kill -QUIT 2072
  3. # 第二种
  4. kill -TERM 2072
  5. kill -INT 2072
  6. # 第三种强制停止
  7. pkill -9 nginx

修改端口号

默认端口号为80,因为通常80端口都是服务于tomcat的,所以这里我们需要修改一下端口号。

  1. cd /usr/local/nginx/conf # 注:这里是usr下的,不是我们解压安装包路径下的。
  2. cp nginx.conf nginx.conf.back # 备份配置文件(备份是个好习惯,可省略)
  3. vi nginx.conf # 编辑nginx.conf配置文件

image.png

  1. 将端口号修改为81(自定)Esc退出 :wq(保存并退出)
  2. ./nginx -s reload # 重新启动一下(注:记住要进入/usr/local/nginx/sbin路径下执行命令)
  3. ps aux|grep nginx # 查询nginx进程

nginx文件配置

  1. location / {
  2. alias /home/wwwroot/default/dist/; #默认访问vue静态文件目录(dist路径)
  3. index index.html; #默认访问文件
  4. try_files $uri $uri/ /index.html; #目录不存在则执行index.html
  5. }

重启 nginx

参考:https://www.cnblogs.com/codingcloud/p/5095066.html

1.先停止再启动(推荐)

对 nginx 进行重启相当于先停止再启动,即先执行停止命令再执行启动命令。如下:

  1. ./nginx -s quit
  2. ./nginx

2.重新加载配置文件

当修改nginx.conf 修改,要想让配置生效需要重启nginx,使用./nginx -s reload不用先停止nginx再启动,即可将配置信息在nginx中生效。

  1. ./nginx -s reload

启动成功后,输入你的IP地址还有配置的nginx端口号在浏览器可以看到这样的页面:
image.png
这就说明我们nginx配置成功了。

开机自启动

在etc的rc.local增加启动代码就可以了。

  1. vi /etc/rc.local
  2. /usr/local/nginx/sbin/nginx # 添加的语句
  3. chmod 755 /etc/rc.local # 设置权限

image.png

查询nginx进程

  1. ps aux|grep nginx # 查询nginx进程

在nginx装好之后发现没有http_ssl_module模块,无法配置https时,使用下面的操作

参考:https://blog.csdn.net/qq_27328865/article/details/103118364

本例是在安装好nginx的前提下进行的(没有太多差别,主要是少了一步install)
nginx如果未开启SSL模块,配置https时出现提示错误。
nginx: [emerg] the “ssl” parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:xxx
nginx缺少http_ssl_module模块,编译安装的时候带上—with-http_ssl_module配置就行了。
本场景是服务器已经安装过nginx,但是未安装http_ssl_module。

1.进入到源码包,如:

  1. cd /app/download/nginx-1.12.2

2.configure:

  1. ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

3.make:

  1. make

4.不需要执行make install,否则就覆盖安装了。
5.备份原有的nginx,如:

  1. cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_bak

6.然后将刚刚编译好的nginx覆盖掉原有的nginx(nginx需要停止)

  1. cp ./objs/nginx /usr/local/nginx/sbin/

7.查看安装情况:

  1. /usr/local/nginx/sbin/nginx -V
  1. nginx version: nginx/1.12.2
  2. built by gcc 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC)
  3. built with OpenSSL 1.0.2k-fips 26 Jan 2017
  4. TLS SNI support enabled
  5. configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module