《Linux 安装 nginx 详细步骤》


2020-04-24 上次更新时间:4/29/2022, 9:34:08 AM 0 工具类

# 0. 安装依赖包

yum -y install gcc zlib zlib-devel openssl openssl-devel pcre pcre-devel
1
  • gcc:一个编译器能将C、C++语言源程序、汇程式化序和目标程序编译、连接成可执行文件
  • zlib:压缩库,类似zip
  • openssl:用于加密的软件包,用于支撑 ssl 功能
  • pcre: 一个Perl库,包括 perl 兼容的正则表达式库,用于解析正则表达式

*-devel 包有什么不同?

devel包含普通包,主要是供开发用,至少包括以下:

  • 头文件
  • 链接库
  • 开发文档或演示代码(部分)

以 glib 和 glib-devel 为例:

如果你安装基于 glib 开发的程序,只需要安装 glib 包就行了。但是如果你要编译使用了 glib 的源代码,则需要安装 glib-devel。

# 1. 下载并解压安装包

nginx 官网提供了3个版本,分别是:

  • Mainline version:Nginx 目前主力在做的版本,可以说是开发版
  • Stable version:最新稳定版,生产环境上建议使用的版本
  • Legacy versions:遗留的老版本的稳定版

安装版本可到官网去查看。nginx-download

# 创建一个文件夹
cd /usr/local
mkdir nginx
cd nginx

# 下载tar包
wget http://nginx.org/download/nginx-1.18.0.tar.gz
# 解压
tar -xvf nginx-1.18.0.tar.gz
1
2
3
4
5
6
7
8
9

# 2. 安装nginx

# 进入目录
cd /usr/local/nginx/nginx-1.18.0
# 执行命令
./configure
# 执行make命令
make
# 执行make install命令
make install
1
2
3
4
5
6
7
8

# 3. 启动nginx

/usr/local/nginx/sbin/nginx -s reload
1

如果出现报错:nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed

则运行:/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

再次启动即可!

# 4. 启动成功

浏览器访问ip查看。默认是80端口,端口号可省略。

# 5. 查看nginx进程

ps -ef | grep nginx
1

# 6. 修改 nginx.conf

nginx 默认监听80端口,以及指向目录下的html文件夹。为了更加灵活,我们可以通过修改nginx.conf去调整。

# 打开配置文件
vi /usr/local/nginx/conf/nginx.conf
1
2

一般一台nginx会部署多个服务 ,为了方便,会建立多个nginx配置,只需要在nginx.config 中 include进来即可

http {
    # ...默认配置
    include /usr/local/nginx/conf/vhost/*.conf;
}
1
2
3
4

# 7. 新增配置

在目录/usr/local/nginx/conf/vhost 下,新建 blog.conf

# 新增端口,可通过 localhost:3000 访问
server {
    listen  3000;
    server_name  localhost;
    charset utf-8;
    access_log /var/log/nginx/blog.log main;

    location / {
        root /home/blog/dist;
    }
}

# 新增域名反向代理,可通过域名访问
server {
   listen 80;
   server_name 你的域名;

   location / {
      proxy_pass http://localhost:3000;
   }
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

检查 nginx.conf 是否正确

/usr/local/nginx/sbin/nginx -t
1

重启 nginx

/usr/local/nginx/sbin/nginx -s reload
1

可通过以下方式访问:

  • http://你的ip:3000
  • http://你的域名

# 8. 添加nginx服务到service

  1. 进入/etc/init.d,新建nginx文件
#!/bin/bash
#Startup script for the nginx Web Server
#chkconfig: 2345 85 15
nginx=/usr/local/nginx/sbin/nginx
conf=/usr/local/nginx/conf/nginx.conf
case $1 in 
start)
echo -n "Starting Nginx"
$nginx -c $conf
echo " done."
;;
stop)
echo -n "Stopping Nginx"
killall -9 nginx
echo " done."
;;
test)
$nginx -t -c $conf
echo "Success."
;;
reload)
echo -n "Reloading Nginx"
ps auxww | grep nginx | grep master | awk '{print $2}' | xargs kill -HUP
echo " done."
;;
restart)
$nginx -s reload
echo "reload done."
;;
*)
echo "Usage: $0 {start|restart|reload|stop|test|show}"
;;
esac
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
  1. 给文件赋予可执行权限
sudo chmod a+x nginx
1

文件权限:

1、u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是

2、r 表示可读取,w 表示可写入,x 表示可执行。

一般情况下我们需要给它添加上执行权限

sudo chmod a+x 文件名

sudo chmod a+w 文件名

  1. 验证
service nginx reload

Reloading Nginx done.
1
2
3
上次更新时间: 4/29/2022, 9:34:08 AM