起因:
我想给我的路由器的nginx配置一下,来实现输入域名,跳转到内网服务的一个功能,虽然能设置host来实现,但是旁路模式下,其他未配置DNS或网关的设备难以跳转。
恰好,我有一个域名:binfen.live
我给他解析了一个A记录,解析地址是
192.168.2.12,用的子域名:beta.binfen.live
也就是说,我如果联网,也在家庭内网中,这样一操作,马上就跳转到我的内网服务器了。实现快乐。理论上我的那个端口号就没了,应该是相当精彩的。
但配置过程一波三折,给大家唠唠。
条件
- 恰好我的路由器装了docker
- 恰好我的路由器是nginx支持的luci,而不是甲骨文行或其他的。
- 恰好我提前安装了一个文件管理器:luci-app-filebrowser
- 恰好我有一个ngnix的管理应用:luci-app-nginx-manager
如果各位第二点条件无法满足,那么该方法失效
如果各位第二点条件无法满足,那么该方法失效
如果各位第二点条件无法满足,那么该方法失效
曲折
用nginx管理器,直接从CSDN上面复制了一句,然后我,略微一改,写进去了:
如下展示:
好家伙,后来用SSH重启nginx的时候,软件提示我,发现作者少写了一个 } ,所以我的nginx崩溃了,不能用了,路由器页面也进不去了!!完蛋了,这下,没法用luci的网页来写nginx了:无奈,SSH命令也没背熟(实际很容易的)
后来这个长得超可爱的软件救了我。他咋实现没有nginx还能跑,我不知道,反正能用!!
用户名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找不到备份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的知识,还行,没白学,距离一个优秀的网络运营工程师又近了一步。
另外,请大家注意,反代的时候,网址后面加上/ 和不加/ 效果是不一样的,请大家注意。
Comment here is closed