起因:

我想给我的路由器的nginx配置一下,来实现输入域名,跳转到内网服务的一个功能,虽然能设置host来实现,但是旁路模式下,其他未配置DNS或网关的设备难以跳转。

恰好,我有一个域名:binfen.live

我给他解析了一个A记录,解析地址是
192.168.2.12,用的子域名:beta.binfen.live

也就是说,我如果联网,也在家庭内网中,这样一操作,马上就跳转到我的内网服务器了。实现快乐。理论上我的那个端口号就没了,应该是相当精彩的。

但配置过程一波三折,给大家唠唠。

条件

  1. 恰好我的路由器装了docker
  2. 恰好我的路由器是nginx支持的luci,而不是甲骨文行或其他的。
  3. 恰好我提前安装了一个文件管理器:luci-app-filebrowser
  4. 恰好我有一个ngnix的管理应用:luci-app-nginx-manager

如果各位第二点条件无法满足,那么该方法失效
如果各位第二点条件无法满足,那么该方法失效
如果各位第二点条件无法满足,那么该方法失效

曲折

用nginx管理器,直接从CSDN上面复制了一句,然后我,略微一改,写进去了:
如下展示:
2022-07-30T15:42:00.png
2022-07-30T15:41:53.png

好家伙,后来用SSH重启nginx的时候,软件提示我,发现作者少写了一个 } ,所以我的nginx崩溃了,不能用了,路由器页面也进不去了!!完蛋了,这下,没法用luci的网页来写nginx了:无奈,SSH命令也没背熟(实际很容易的)

后来这个长得超可爱的软件救了我。他咋实现没有nginx还能跑,我不知道,反正能用!!

2022-07-30T15:41:32.png

用户名admin 密码我的路由密码

配置方法

百度搜了一些发现nginx的目录在这里:

/etc/config/nginx

于是咱就用上面的文件浏览器一点点的进入:进到这个位置:

http://192.168.2.12:1989/files/etc/nginx/conf.d/shortcuts.conf

进来了,按理说,在最后一行,加上一个“ } ” 就圆满了,但是!!你看


# 反向代理博客 (配置好的信息展示)

server {
        listen 80;
        server_name beta.binfen.live;
        location /{
            proxy_pass http://192.168.2.12:91;
        }}

当重启命令重重地打入之后:
nginx -s reopen

(nginx 相关命令 链接:https://www.cnblogs.com/no8g/p/13415462.html

nginx启动不起来了!!! nginx启动不起来了!!! nginx启动不起来了!!! nginx启动不起来了!!! **启动报错** **启动报错** **启动报错**

总结下,两个问题

  1. 我的(域名)太长了!nginx受不了!!
  2. 重启后,nginx找不到备份pid文件了

修复方法:

1号问题的修复办法:

我们这次去 conf/nginx.conf 里面,给他加点空间

平替:大家改个短些的域名更简单的其实

咱们就找到conf/nginx.conf,里面肯定有一个http,还有server,咱就在http下面的第一行加上

http {
server_names_hash_bucket_size 64;
重点是加上上面那句,或者是改成上面那句

这空间大小肯定没问题了。但是重启的时候报第二个错误:

报错信息

nginx: [error] open() "/var/run/nginx/nginx.pid" failed (2: No such file or directory)

2号问题的修复

SSH里面输入:

nginx -c /etc/nginx/nginx.conf

接下来重启正常,一起正常依旧。

2号解决方法的原文链接:https://www.jianshu.com/p/c0a824bb3184

感受

一波三折,实现的结果也不是很满意,但是总的来说,学到了一些配置nginx的知识,还行,没白学,距离一个优秀的网络运营工程师又近了一步。

另外,请大家注意,反代的时候,网址后面加上/ 和不加/ 效果是不一样的,请大家注意。

Last modification:July 30, 2022
给博主买瓶冰可乐