本文主要是介绍lnmp一键安装包中配置swoole域名端口映射,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
按照官方文档
location / {proxy_http_version 1.1;proxy_set_header Connection "keep-alive";proxy_set_header X-Real-IP $remote_addr;if (!-e $request_filename) {proxy_pass http://127.0.0.1:9501;}}
添加无效,主要是一键安装包的vhost配置文件中没有 找到 location / {
有个折中的办法,就是在 location ~ \.php { 下配置,把 if 判断改成如下或者干脆删除判断语句
if (-e $request_filename) {
这样一来,所有到该域名的请求,不管有没有index.php,都会变成端口映射,但这样总感觉太野蛮了
================================================================
后来在配置文件中发现一句
include /usr/local/nginx/conf/rewrite/thinkphp.conf;
那就编辑这个文件吧,果然 location / 在这里,暂时先这样修改:
location / {# 如果$uri对应的文件存在,在Nginx返回文件,否则把请求交给Swoole处理try_files $uri @swoole;if (!-e $request_filename) {rewrite ^(.*)$ /index.php?s=$1 last;break;}
}location @swoole {proxy_pass http://127.0.0.1:9501;proxy_http_version 1.1;proxy_set_header Connection "keep-alive";# Swoole通过$req->header['x-real-ip']拿到该参数proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $remote_addr;proxy_set_header Host $host;
}
这样最后达到的效果是,url中有index.php的时候正常访问前台页面,无index.php的时候,会跳转到swoole来处理
但是我并不想让用户直接访问域名就能定位到我的swoole请求页面,反复尝试了好久都达不到效果
================================================================
突然灵光一现,完全可以自己另外定义一个location啊
请求的名字还可以自定义,本例中精确匹配 http
于是所有代码都不用动,只需要在配置文件中添加下边代码即可
location = /http {allow ip白名单1;allow ip白名单2;deny all;proxy_http_version 1.1;proxy_set_header Connection "keep-alive";proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $remote_addr;proxy_set_header Host $host;if (!-e $request_filename) {proxy_pass http://127.0.0.1:9501;}}
这样连白名单都有了,可以设置只允许 服务器的反向代理IP 访问swoole_http_server
TODO:如何防止有人绕过前端页面直接请求服务器
================================================================
另外还有一种情况,就是域名后随便输入一段字符,会跳出tp的错误界面
想让它跳转404或者直接返回首页
参考 https://blog.csdn.net/u011486871/article/details/79663127 先实现返回首页
将rewrite规则文件注释,在域名主配置文件中添加:
location / {try_files $uri $uri/ /index.php;}
这样无论输入什么字符都会跳转首页,而index.php入口文件也不会受影响
该方法有问题,会让rewrite失效,还是使用配置文件默认的rewrite规则
如果想跳转,就在tp中自定义错误页面吧
这篇关于lnmp一键安装包中配置swoole域名端口映射的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!