? Editing: Post:21.body Save Delete Cancel
Content changed Sign & Publish new content

🌱Vpei ZeroNet Blog

🍒Vpei 🍒 ZeroID 🍒

Follow in NewsfeedFollowing

Latest comments:

Add new post

Title

21 hours ago · 2 min read ·
3 comments
Body
Read more

Not found

本地搭架HTTPS的零网代理教程NGINX+ZERONET

on Apr 02, 2018

本地搭架HTTPS的零网代理教程NGINX+ZERONET
1、注册免费域名 2、注册免费SSL证书 3、有自己的VPS服务器,下载NGINX和ZERONET软件。
 
具体注册网址及文件:
1、注册免费域名,自己按提示选择(IP地址就是VPS的服务器地址)
http://www.freenom.com/zh/index.html,会得到如:http://www.domain.tk等的域名。
2、免费HTTPS证书的网站
https://freessl.org/https://www.sslforfree.com/,注册成功后,会得到一个压缩文件chain.zip,下载保存。
3、NGINX下载
http://nginx.org/en/download.html,可以下载文件nginx-1.13.10.zip。
4、流程:确保VPS上http://127.0.0.1:43110的ZERONET软件能正常访问。
5、解压nginx-1.13.10.zip文件,再解压文件chain.zip,把文件夹chain放入nginx-1.13.10中。
6、配置nginx的配置文件nginx-1.13.10/conf/nginx.conf,文件配置内容见后。

nginx.conf内容:

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}

http {
    #设定mime类型,类型由mime.type文件定义
    include    mime.types;
    default_type  application/octet-stream;
    #设定日志格式
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #          '$status $body_bytes_sent "$http_referer" '
    #          '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    #sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件,
    #对于普通应用,必须设为 on,
    #如果用来进行下载等应用磁盘IO重负载应用,可设置为 off,
    #以平衡磁盘与网络I/O处理速度,降低系统的uptime.
    sendfile     on;
    #tcp_nopush     on;

    #连接超时时间
    #keepalive_timeout  0;
    keepalive_timeout  65;
    tcp_nodelay     on;

    #压缩网页文件
    gzip  on;

    #设定请求缓冲
    client_header_buffer_size    128k;
    large_client_header_buffers  4 128k;

        #以下这个server主要是https-server的,如果不要可以删除,直接使用下面的http-server
    server {
        listen 443 ssl;
        listen [::]:443 ssl;
        server_name www.domain.tk;
        access_log off;

        #以下为密码认证配置
        #用户密码文件htpasswd,放入配置文件所在的文件夹
        auth_basic "user and password !";
        auth_basic_user_file htpasswd; 
        #以上为密码认证配置

        #ssl_certificate /website/userssl/ssl.crt;
        #ssl_certificate_key /website/userssl/ssl.key;
        #证书文件获取网址 https://freessl.org/,文件下载解压后的文件夹chain放入软件目录
        ssl_certificate      ./chain/full_chain.pem;
        ssl_certificate_key  ./chain/private.key;
        ssl_session_timeout 5m;


        location / {
            proxy_pass http://127.0.0.1:43110;
        }

        location /Websocket {
            proxy_pass http://127.0.0.1:43110;
            proxy_http_version 1.1;
            proxy_read_timeout 1h; #for long live websocket connetion
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
        }

        if ($scheme = http) {
            return 301 https://$server_name$request_uri;
        }
    }

    #以下是http-server,如果不需要使用https://访问,可以删除上面的https-server,如果两个都需要就都可以保留,此处http://使用8088端口,主要是VPS自带IIS为占用80端口,如果没有装IIS或把IIS的网站默认端口改成其他端口,此处下面的8088可以更改为80
    server {
        listen 8088; #http网站的端口
        server_name www.domain.tk;#你需要设置的域名,可以免费注册后填写
        access_log off;

        #以下为密码认证配置
        #用户密码文件htpasswd,放入配置文件所在的文件夹
        auth_basic "密码提示语";
        #auth_basic_user_file /vhost/nginx_passwd;
        auth_basic_user_file htpasswd;
        #以上为密码认证配置

        location / {
            proxy_pass http://127.0.0.1:43110;
        }

        location /Websocket {
            proxy_pass http://127.0.0.1:43110;
            proxy_http_version 1.1;
            proxy_read_timeout 1h; #for long live websocket connetion
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
        }
    }
}

如果需要访问认证,可以把用户名和密码的记事本文件,可以需要.txt后缀格式,也可以不需要。文件放在conf的文件夹中。htpasswd文件格式,一行一个帐号,帐号和密码中间用:隔开。
htpasswd文件内容:

用户名:密码
test:test
user:pass

0 Comments:

user_name1 day ago
Reply
Body
This page is a snapshot of ZeroNet. Start your own ZeroNet for complete experience. Learn More