Nginx https反向代理http无法加载静态文件的问题

从阿里云拿到CA证书配置完后,域名能够成功跳转到https页面,但是由于ccs和js等静态组件是从http网站链接过来的,在https页面中无法正常加载,因此需要对nginx目配置文件进行修改,将http资源转换为https。
博主在这提供一个懒人方法,在nginx/.conf/添加一个 *.conf文件,复制以下内容。(如果你正在使用halo,用以下内容覆盖halo.conf,并根据注释做相应修改)

server {
       listen 80;
   
       server_name localhost;  #将localhost修改为您证书绑定的域名,例如:www.example.com。
       rewrite ^(.*)$ https://$server_name$1 permanent;   #将所有http请求通过rewrite重定向到https。
       client_max_body_size 1024m;
  }
  
# HTTPS server
  server {
  listen 443 ssl;   #SSL协议访问端口号为443。此处如未添加ssl,可能会造成Nginx无法启动。
  server_name localhost;  #将localhost修改为您证书绑定的域名,例如:www.example.com。
  root html;
  index index.html index.htm;
  ssl_certificate /etc/nginx/conf.d/cert/4273053_zkspace.top.pem;   #将domain name.pem替换成您证书的文件名。
  ssl_certificate_key /etc/nginx/conf.d/cert/4273053_zkspace.top.key;   #将domain name.key替换成您证书的密钥文件名。
  ssl_session_timeout 5m;
  ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;  #使用此加密套件。
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;   #使用该协议进行配置。
  ssl_prefer_server_ciphers on;
 
  location / {
  
      add_header Content-Security-Policy upgrade-insecure-requests; #这里这个就是处理https反向代理http时候静态资源的关键
      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:端口/;                                                                                                            
 }
 }

  • ps:
    1.localhost可填写多个,用空格分隔。
    2.127.0.0.1指向服务器自身,端口值填写自己需要代理的服务端口。
    3.ssl_certificate和ssl_certificate_key的路径根据实际*.pem及*.key存放路径填写。


  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在Linux上使用Nginx代理静态文件,你需要按照以下步骤进行设置: 1. 首先,你需要安装Nginx。你可以从官方网站下载你所需版本的Nginx压缩包。使用以下命令下载: `wget http://nginx.org/download/nginx-1.16.1.tar.gz` [3] 2. 下载完成后,解压缩压缩包,并进入解压缩后的目录。使用以下命令进行解压缩和进入目录: ``` tar -zxvf nginx-1.16.1.tar.gz cd nginx-1.16.1 ``` 3. 创建Nginx的安装目录。使用以下命令创建目录: `mkdir -p /usr/local/nginx` [1] 4. 配置Nginx。使用以下命令进行配置: `./configure --prefix=/usr/local/nginx` [1] 5. 编译和安装Nginx。使用以下命令进行编译和安装: `make && make install` [1] 6. 配置Nginx代理静态文件。打开Nginx的配置文件,并添加以下配置: ``` location ~ .*/(css|js|img) { root /opt/static; } ``` 这表示在`/opt/static`目录下的所有(css/js/img目录下的)资源将由Nginx代理。你可以根据实际情况修改路径和目录名称。保存并退出配置文件。 7. 重新加载Nginx配置。使用以下命令重新加载Nginx配置: `/usr/local/nginx/sbin/nginx -s reload` [2] 现在,Nginx将会代理你指定的Linux静态文件。请确保你的静态文件位于配置文件中指定的路径下,并且文件名和目录结构正确。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Nginx简介,Linux上简单实现部署静态资源、反向代理、负载均衡](https://blog.csdn.net/m0_52765511/article/details/126212249)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [nginx(静态代理)linux版](https://blog.csdn.net/Badman0726/article/details/122024886)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值