Windows通过Nginx反向代理stable diffusion webui实现自定义域名访问

February 20, 2023 by Clyde

由于stable diffusion webui提供的gradio链接时效只有72小时,故有了此教程

7

SD部分

让stable diffusion webui 监听到网卡

参数分两种情况,在webui-user.bat以及lanuch.py中做出选择

webui-user.bat

set COMMANDLINE_ARGS= --listen

lanuch.py

python lanuch.py --listen

如看到下图就代表已经监听到网卡了!
1

如过遇到端口被占用

  1. 打开cmd 使用命令

    netstat -aon
  2. 寻找占用端口程序的pid

    netstat -aon|findstr "7860"
  3. 如查询到的对应程序pid为9088

    tasklist|findstr "9088"
  4. 强制(/F参数)杀死 pid 为 9088 的所有进程包括子进程(/T参数)

    tasklist /f /t /pid 9088

Nginx部分

Nginx 安装

下载Nginx

推荐稳定版本
Nginx download Linkhttps://nginx.org/en/download.html
2

Nginx启动与停止

1.下载完成后,解压缩,运行cmd,使用命令进行操作,不要直接双击nginx.exe
一定要在cmd窗口启动,不要直接双击nginx.exe,这样会导致修改配置后重启、停止nginx无效,需要手动关闭任务管理器内的所有nginx进程,再启动才可以

  1. 使用命令到达nginx的加压缩后的目录

    cd c:\nginx-1.22.1
  2. 启动nginx服务,启动时会一闪而过是正常的

    start nginx
  3. 查看任务进程是否存在,cmd或打开任务管理器都行

    tasklist /fi "imagename eq nginx.exe"
    3
  4. 之后就打开浏览器访问刚才的域名及端口http://localhost:8800,出现欢迎页就说明部署成功了
    5

Nginx配置文件

修改在conf路径下的nginx.conf

正常https配置:

server {
       listen       443 ssl;
       server_name  localhost;

       ssl_certificate      cert.pem;
       ssl_certificate_key  cert.key;

       ssl_session_cache    shared:SSL:1m;
       ssl_session_timeout  5m;

       ssl_ciphers  HIGH:!aNULL:!MD5;
       ssl_prefer_server_ciphers  on;

       location / {
           root   html;
           index  index.html index.htm;
       }
    }



反向代理配置

server{
        listen 7866 ssl;
        listen [::]:7866 ssl;
        server_name  cctv.com;
        index  index.php index.html index.htm;

        ssl_certificate      a.crt; #证书路径
        ssl_certificate_key  a.key; #密钥路径

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;


        location / {
        proxy_pass  http://127.0.0.1:7860; # 转发规则
        proxy_set_header Host $proxy_host; # 修改转发请求头,让7860端口的应用可以受到真实的请求
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }


测试Nginx的配置文件是否正确

nginx -t -c c:\nginx\1.22.1\conf\nginx.conf
提升以下则代表配置文件正确
4

至此可以打开对应域名来访问了!
6

注意事项

如果机器配置不够特别是cpu渲染的时候时间过长,会导致nginx的链接中断导致504错误 结果会无法出图:
需要在server块中加入以下参数

proxy_connect_timeout 6000;
proxy_send_timeout 6000;
proxy_read_timeout 3000;

keepalive_timeout  6000;
fastcgi_connect_timeout 6000;
fastcgi_send_timeout 6000;
fastcgi_read_timeout 6000;
fastcgi_buffer_size 256k;
fastcgi_buffers 8 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;








1 comment
  1. ace

    嗨嗨嗨

    ace 回复
如需评论,请填写表单。

提交前先勾选

© 2024 | The Asuna Blog From | X-ways theme