侧边栏壁纸
博主头像
BinsX瞎折腾 博主等级

有事没事瞎折腾

  • 累计撰写 2 篇文章
  • 累计创建 4 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

阿里云服务器使用Nginx反向代理群晖

BinsX
2024-07-28 / 0 评论 / 0 点赞 / 32 阅读 / 0 字

背景

之前一直使用群晖域名+端口号进行远程访问,一切安好。近段时间发现在公司访问个人主页时失效,公司内网环境下全部群晖部署的服务都无法使用了。多番尝试发现应该是公司内网屏蔽了除80和443的其他端口,家里宽带是屏蔽80和443端口的,两边端口没有交集了。无奈之下趁阿里云还有99块钱的云服务器买了个玩玩,核心思想是运用阿里云主机作为跳板机,最终服务器还是布置在群晖上,这样后期如果涨价了直接更换跳板机反向代理设置即可。(域名也是需要另外购买的,我之前就有,这里说明下。)

操作

Nginx安装部署

云服务器购买完成后远程登陆安装Nginx。

安装依赖项

yum install openssl     #SSL功能需要openssl库
yum install zlib        #gzip模块需要zlib库
yum install pcre        #rewrite模块需要pcre库

安装启动Nginx

yum install nginx      #安装nginx
service nginx start    #启动nginx

防火墙白名单增加使用端口

systemctl start firewalld	#启动防火墙,若出现firewall is not running才需运行
firewall-cmd --permanent --zone=public --add-port=80/tcp	#http访问使用
irewall-cmd --permanent --zone=public --add-port=443/tcp	#https访问使用
firewall-cmd --reload	#重启防火墙设置生效防火墙白名单增加使用端口

配置Nginx反向代理

首先配置二级域名域名解析,解析到购买的云服务器公网IP。

配置Nginx.conf文件

vim /etc/nginx/nginx.conf	#编辑Nginx配置文件

使用80端口配置反向代理

server {
        listen       80;
        listen       [::]:80;
        server_name  domain;    #配置的二级域名
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
        proxy_pass http://群晖域名:端口号;    #群晖服务器域名+映射端口号
        proxy_set_header X-Forwarded-host $http_host;		#有的功能要加此句,否则反代后还是会定向到原群晖域名
        }

        error_page 404 /404.html;
        location = /404.html {
        }

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
    }

重启Nginx使配置生效

nginx -s reload	#重启Nginx使设置生效

https反向代理

Nginx直接使用http反向代理并用二级域名进行访问是比较简单的,但是有一些应用考虑到在公司环境中使用的数据安全性,还是使用https访问更好。此处有一个问题会比较麻烦,因为https访问是需要SSL证书的,通过配置二级域名来访问每一个二级域名都需要一个证书,购买证书费用不低。

开始考虑的是使用Let‘s empty免费证书申请并定期自动延期,配置时阿里云主机验证一直存在问题报错,没研究出来到底问题在哪儿。后来发现有阿里云账户的可以每年免费申请20个免费SSL证书(有效期3个月),于是使用阿里云免费证书进行SSL证书的部署。

阿里云-数字证书管理服务-证书管理-SSL证书管理-个人测试证书(原免费证书)-立即购买,选项默认,购买完成后在SSL证书管理中创建证书,路径如下图

图片-20240726221026-u57bohs.png

由于域名解析就在阿里云服务器,DNS选择自动获取(默认),创建后等待证书审核完成即可下载。下载Nginx对应的证书。

使用WinSCP登录CenterOS,IP为阿里云服务器公网IP,找到想要上传的目录,我存放的目录为/etc/pki/nginx,上传文件。

配置Nginx.cong

 server {
        listen       443 ssl http2;
        listen       [::]:443 ssl http2;
        server_name  domain;    #配置的二级域名
        root         /usr/share/nginx/html;

        ssl_certificate "/etc/pki/nginx/home.binsx.com.pem";
        ssl_certificate_key "/etc/pki/nginx/home.binsx.com.key";
        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout  10m;
        ssl_ciphers HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers on;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
        proxy_pass http://群晖域名:端口号;    #群晖服务器域名+映射端口号
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }

相关链接

在阿里云服务器上如何搭建nginx服务器?

CentOS + Nginx 环境自动申请和部署Let‘s Encrypt免费SSL证书教程

0

评论区