如何用 Nginx 配置透明 HTTP 和 HTTPS 代理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用 Nginx 配置透明 HTTP 和 HTTPS 代理相关的知识,希望对你有一定的参考价值。

1、首先需要配置站点的WoSign SSl证书

打开nginx安装目录下conf目录中的nginx.conf文件 找到
# HTTPS server
#
#server
# listen 443;
# server_name localhost;
# ssl on;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_timeout 5m;
# ssl_protocols SSLv2 SSLv3 TLSv1;
# ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
# ssl_prefer_server_ciphers on;
# location /
# root html;
# index index.html index.htm;
#
#
将其修改为 :
server
listen 443;
server_name localhost;
ssl on;
ssl_certificate sslkey/public.cer; (证书公钥)
ssl_certificate_key sslkey/private.key; (证书私钥)
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
location /
root html;
index index.html index.htm;


保存退出,并重启Nginx。
通过https方式访问您的站点,测试站点证书的安装配置。

3、配置强身份认证
1、 修改nginx.conf文件
如果要求客户采用客户证书认证方式,可以在原来的配置下增加如下参数:
server
......
......
......
ssl_verify_client on 要求SSL客户证书认证。
ssl_client_certificate trust.cer 签发客户证书的CA证书,用来验证客户证书。
ssl_verify_depth 3 SSL客户证书认证链长度。

4、重启站点使用您的客户端证书进行登陆测试
参考技术A Nginx是"主要"用于反向代理,至少我个人如此, 当然也用过他作为正向的

Nginx由于不支持"CONNECT",所以客户端在请求外网的https站点时,会出现错误:

"CONNECT www.google.com:443 HTTP/1.1" 400
建议用Squid搭建内网的代理,
不过你执意Nginx的话,带上这个模块再编译一次:

https://github.com/chobits/ng...
参考技术B nginx是不支持https的代理的。http的代理配置如下:
1234567891011server resolver 223.5.5.5;resolver_timeout 10s;listen 80;access_log /var/log/nginx/proxy.access.log;error_log /var/log/nginx/proxy.error.log;location / proxy_pass $scheme://$host$request_uri;proxy_set_header Host $http_host;

如何用OpenGL ES 2.0渲染一个透明surface

如题,如何用OpenGLES2.0在surface上贴上纹理之后,整个surface具有透明效果?即:假设有两个surfaceView,v1,v2,v2挡住v1的部分透明,使之能够看到v1.求指教~~~~~~~

参考技术A 你学下opengl吧,要开blend效果,这是网上一段透明纹理的代码,没测过glGenTextures(1,&texture); //generate texture object,生成纹理对象glBindTexture(GL_TEXTURE_2D, texture); // enable ourtexture object,绑定纹理//这一陀就是设置纹理属性,我也看不懂glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S,GL_CLAMP);glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T,GL_CLAMP);glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,GL_LINEAR);glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,GL_LINEAR);// generate thetexture imageglTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA,FreeImage_GetWidth(dib),FreeImage_GetHeight(dib), 0, GL_RGBA,GL_UNSIGNED_BYTE, bits); //从位图中抽取纹理到纹理对象中 参考技术B 你看这样行不,把V2的surface属性改一下,例如:1、GLSurfaceView v2= new GLSurfaceView();this.getHolder().setFormat(PixelFormat.TRANSLUCENT);2、在渲染器类OnSurfaceCreated函数中设置清屏的颜色:gl.glClearClolor(0,0,0,0);最后,在画的时候OnDrawFrame 开启混合 也就是我上面写的那几句 参考技术C 在一个Surface实现可以不?一个Surface中 贴两张贴图在OnDrawFrame()中,draw()模型前加上gl.glEnable(GL10_BLEND);//开启混合模式gl.glBlendFunc(GL10.GL_SRC_ALPHA,GL10_ONE_MINUS_SRC_ALPHA);//设置混合因子

以上是关于如何用 Nginx 配置透明 HTTP 和 HTTPS 代理的主要内容,如果未能解决你的问题,请参考以下文章

如何用 Nginx 配置透明 HTTP 和 HTTPS 代理

如何用 Nginx 配置透明 HTTP 和 HTTPS 代理

如何用 Nginx 配置透明 HTTP 和 HTTPS 代理

如何用nginx.conf配置nginx

如何用服务器搭建一个Meteor国内包镜像源

如何在项目中使用Http2.0?