《Linux 安装 nginx 详细步骤》
# 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
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
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
2
一般一台nginx会部署多个服务 ,为了方便,会建立多个nginx配置,只需要在nginx.config 中 include进来即可
http {
# ...默认配置
include /usr/local/nginx/conf/vhost/*.conf;
}
1
2
3
4
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
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
- 进入
/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
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
- 给文件赋予可执行权限
sudo chmod a+x nginx
1
文件权限:
1、u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是
2、r 表示可读取,w 表示可写入,x 表示可执行。
一般情况下我们需要给它添加上执行权限
sudo chmod a+x 文件名
sudo chmod a+w 文件名
- 验证
service nginx reload
Reloading Nginx done.
1
2
3
2
3