优化建站时的反向代理配置

作者: admin 分类: 技术 发布时间: 2024-01-19 02:32
之前在部署项目的时候,都是一股脑把反向代理配置直接写到 nginx 主配置文件中(也许不太优雅)。
# Halo
server {
    listen 80; #侦听80端口,如果强制所有的访问都必须是HTTPs的,这行需要注销掉
    listen 443 ssl; #侦听443端口,用于SSL
    server_name blog.miykah.top;  # 自己的域名

    #配置 ssl
    ssl_certificate     /opt/cert/blog.miykah.top/blog.miykah.top_bundle.pem;  # pem文件的径
    ssl_certificate_key  /opt/cert/blog.miykah.top/blog.miykah.top.key; # key文件的路径

    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;

    client_max_body_size 1024m;

    location / {
        proxy_set_header HOST $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://127.0.0.1:8090;
   }
}
宝塔的 nginx 配置修改界面也提示:
之后可以利用宝塔建站点的方式来进行反向代理,可以很方便的管理站点,同时可以利用宝塔面板直接申请免费证书,还会自动续期。
先将之前 nginx 主配置文件中,自己配置的一些反向代理配置删除掉。
比如这些:

重载 nginx 配置或重启一下 nginx。

添加站点
以 Halo 博客为例,创建站点,配置域名。

申请 SSL 证书
创建好站点后,配置站点,进入 SSL,点击 Let's Encrypt,申请证书。

PS:这里如果先配置了下一步的反向代理,是申请不了的(会提示 已开启反向代理的站点无法申请SSL),需要先关闭反向代理,申请证书后,再开启反向代理。
申请成功后可以看到部署的证书。可以开启强制 HTTPS

反向代理
然后进入站点配置的反向代理,添加反向代理。

PS:我遇到了添加反向代理失败的情况(提示:伪静态/nginx主配置/vhost/文件已经存在全局反向代理)
这里参考:https://www.jb51.net/article/254978.htm,解决。
主要排查点是:
首先需要了解nginx.conf各个路径的配置文件,这个问题涉及到三个路径的配置文件。
第一个是网站的伪静态重写配置文件,在/www/server/panel/vhost/rewrite/ 路径的文件夹下。
第二个是网站本身的配置文件,在/www/server/panel/vhost/nginx/ 路径的文件夹下。
第三个最后一个是nginx.conf配置文件,这个一般都是在/www/server/nginx/conf/ 路径下。
然后查看每个配置是否存在location / 匹配规则,有的话需要删除。
是因为我之前自己手动配置的 nginx 反向代理中包含 location / 规则。但是我已经删除掉了,不知道为啥还会出现,后来重启了几次 nginx 又成功了。。。玄学
添加成功后可以看到我们添加的反向代理:

 

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

标签云
站点地图 Sitemap
申请 友情链接
网站运行