nginx一台机器部署多个子域名的反向代理(https协议)
一登陆腾讯云找到域名注册
一 登陆腾讯云
找到域名注册
点击解析
点击ssl按步骤进行申请就行
申请成功后下载证书.解压后得到四个文件.把以key,crt为后缀的两个文件上传到nginx的conf文件夹下就行了。另外两个不用。
二 配置nginx
conf下的vhosts没有就自己创建.然后在nginx.conf添加
include vhosts/*.conf;
编辑conf/vhosts/ssl-blog.conf,内容如下
upstream blog{ #blog监听的端口 server localhost:96; } server { #SSL 访问端口号为 443 listen 443 ssl; #填写绑定证书的域名 server_name py-php.cn; #证书文件名称 ssl_certificate py-php.cn_bundle.crt; #私钥文件名称 ssl_certificate_key py-php.cn.key; ssl_session_timeout 5m; #请按照以下协议配置 ssl_protocols TLSv1.2; #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on; location / { proxy_pass http://blog; #以下是一些反向代理的配置可删除 proxy_redirect off; #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; client_max_body_size 10m; #允许客户端请求的最大单文件字节数 client_body_buffer_size 128k; #缓冲区代理缓冲用户端请求的最大字节数 proxy_connect_timeout 300; #nginx跟后端服务器连接超时时间(代理连接超时) proxy_send_timeout 300; #后端服务器数据回传时间(代理发送超时) proxy_read_timeout 300; #连接成功后,后端服务器响应时间(代理接收超时) proxy_buffer_size 4k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小 proxy_buffers 4 32k; #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置 proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers*2) proxy_temp_file_write_size 64k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传 } }
编辑conf/vhosts/ssl-gitlab.conf,内容如下
upstream gitlab{ # 域名对应 gitlab配置中的 external_url # 端口对应 gitlab 配置中的 nginx['listen_port'] server localhost:8092; } server { #SSL 访问端口号为 443 listen 443 ssl; #填写绑定证书的域名 server_name gitlab.py-php.cn; #证书文件名称 ssl_certificate gitlab.py-php.cn_bundle.crt; #私钥文件名称 ssl_certificate_key gitlab.py-php.cn.key; ssl_session_timeout 5m; #请按照以下协议配置 ssl_protocols TLSv1.2; #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on; location / { proxy_pass http://gitlab; #以下是一些反向代理的配置可删除 proxy_redirect off; #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; client_max_body_size 10m; #允许客户端请求的最大单文件字节数 client_body_buffer_size 128k; #缓冲区代理缓冲用户端请求的最大字节数 proxy_connect_timeout 300; #nginx跟后端服务器连接超时时间(代理连接超时) proxy_send_timeout 300; #后端服务器数据回传时间(代理发送超时) proxy_read_timeout 300; #连接成功后,后端服务器响应时间(代理接收超时) proxy_buffer_size 4k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小 proxy_buffers 4 32k; #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置 proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers*2) proxy_temp_file_write_size 64k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传 } }
注意:
server_name gitlab.py-php.cn与server_name py-php.cn,用https访问的时候不要乱填.它必须是解析到主机上的域名(包括子域名).
(用http进行反向代理的时候,我们只要端口对了,就能访问.具体看:https://py-php.cn/post/9.html)
重启nginx服务
sbin/nginx -s reload
三 结果
先直接访问原端口,完全ok.
再用https访问 https://supervisor.py-php.cn
这样就实现https协议的反向代理
发表评论
评论列表
- 这篇文章还没有收到评论,赶紧来抢沙发吧~