如何在AMH面板中使用nginx stream块?

关于在AMH面板使用nginx stream块的问题
因为想要复刻这个项目:https://www.notionfaster.org/%E5%AE%9E%E7%8E%B0%E6%96%B9%E6%B...
其中nginx设置的模块是

http {
  ...其他 HTTP 配置...
  stream {
    ...流配置...
    server {
      ...服务器配置...
    }
  }
}

AMH的vhost中似乎只能设置server层级,有什么办法在不直接修改amh面板nginx的情况下,使用nginx stream块?

提问了openai很长时间,未果,属于是自己基础知识不牢固……

阅读 836
2 个回答

配置文件错了,这里stream应该和http是平级的,不是包含关系。
看了一下我的amh面板上面安装的nginx,是不包含这个stream模块的,所以还是得手动编译一遍才行。另外编译了,amh面板貌似也不支持在管理面板上配置这个。

# 全局配置
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;

# HTTP模块配置
http {
    server {
        listen       80;
        server_name  test.com;
    }
}

# Stream模块配置
stream {
    upstream backend {
        server 1.2.3.4:12345;
    }
    server {
        listen     12345;
        proxy_pass backend;
    }
}

时隔多日,我来说一下解决办法:

# 安装具有stream模块的nginx(安装不了可以试试低版本,比如1.18):
amh download nginx-1.26
sed -i 's/group=www/group=www —with-stream/' /root/amh/modules/nginx-1.26/AMHScript
amh nginx-1.26 install

同理,需要其他模板,也是类似方式,先修改对应的配置文件
如:/root/amh/modules/nginx-1.26/AMHScript

如果有需要备份的nginx配置:

mv /usr/local/nginx-1.26 /usr/local/nginx-1.26-bak
# 安装后
cp -a /usr/local/nginx-1.26-bak/conf /usr/local/nginx-1.26

其他说明事项(以下是用于转发某个端口的tcp和udp到另外一台服务器,不完全适用于原问题的notion项目):

  • 先单独编译具有stream的nginx工具,具体的在模板中写清楚了,使用AMH面板很容易
  • 通过ssh重启、安装新的nginx
  • 创建新的环境,注意,因为80 443端口此时是老nginx使用,所以新的nginx是无法直接使用的,需要先从ssh中停止老nginx,再重启新的nginx
  • 找到nginx的配置文件(AMH面板中不是lngx环境的某个主机配置文件,而是SSH进入,服务器中NGINX的配置文件,详细地址:/usr/local/nginx-1.26/conf/nginx.conf 这里,我以我安装了1.26为例)
  • 增加stream和server模块,在events模块后,与http模块同级别

    • 注意V6的处理
stream {
    server {
        listen 20000;  # Listen on all IPv4 addresses on port 12345
        proxy_pass 1.1.1.1:12000;  # Proxy to IPv4 address 219.151.178.59 on port 12582
    }

    server {
        listen [::]:20000;  # Listen on all IPv6 addresses on port 12345
        proxy_pass [1::1]:12000;  # Proxy to IPv6 address on port 12582
    }
}

其中:
listen是nginx监听的本地接口,意味着你可以通过该端口访问B主机,从而到达A主机
proxy_pass 是反代来源,即A主机的某个端口
重载nginx配置文件,amh面板即可操作,或者直接ssh中amh序号 重启

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题