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协议的反向代理
发表评论
评论列表
- 这篇文章还没有收到评论,赶紧来抢沙发吧~