Nginx反向代理小应用

前言

使用Hexo搭建个人博客项目启动后,其url地址是localhost:4000,使用域名访问也就是jieminblog.tk:4000。但我们平时访问其他网站是一般是没有显示端口号的,当端口号是80端口时,端口号不显示。所以我想让自己的博客访问地址也不带端口号。我查询资料后发现有2种解决方式,一种是把项目的端口号改为80,还有一种就是使用Nginx代理。使用第一种方式的话80端口就不能被其他项目所使用,而使用Nginx代理方式80端口还可以被其他服务所使用,理所当然的我选择了第二种方式。

安装和配置Nginx

使用yum安装nginx

yum install nginx

启动nginx

systemctl start nginx

配置nginx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
server {
listen 80;
server_name jieminblog.tk www.jieminblog.tk;
# Load configuration files for the default server block.
location / {
proxy_pass http://127.0.0.1:4000/;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}

保存后重启nginx

systemctl restart nginx

配置中遇到的问题

Nginx启动或重启失败

原因: 80端口被占用启动失败

解决办法:

  1. 查看是什么占用了80端口

    lsof -i tcp:80

  2. 根据上述查询结果得到占用80端口的PID,强行杀死进程。

    kill -9 PID

  3. 重复第一步,如果没有进程存在就重启nginx服务,如果还存在进程,查看进程详细信息,ps PID,这是会显示进程的启动目录,进入目录使用stop命令即可,如果不存在则命令行有提示怎么关闭进程。

结束语

这个是Nginx的简单的配置,虽然简单,但切切实实的解决了一个问题–使域名后面不加端口号。关于Ngnix我只是初窥门径,目前也暂时没有项目能和 Nginx结合使用,所以能写的也只有这些。将来如果有深入了解 Nginx,再来详写!