nginx 代理转发 http https 基本用法

402人浏览   2023-11-10 11:20:06

nginx 配置http最简单的用法;

server{
   # 监听的端口
   listen      80;
   # 绑定的域名,多个用空格分开即可。
   server_name prvt.cool www.prvt.cool;
   location / {
       # 代理的地址 
       proxy_pass http://127.0.0.1:9010; 
   }
}

一般作为前置机时,还需要转发ip与host,否者不能获取真实的访问信息。

server{
   # 监听的端口
   listen      80;
   # 绑定的域名,多个用空格分开即可。
   server_name prvt.cool www.prvt.cool;
   location / {
       proxy_set_header    X-Real-IP  $remote_addr;
       proxy_set_header    X-Forwarded-For  $proxy_add_x_forwarded_for;
       proxy_set_header    Host  $http_host;
       # 代理的地址 
       proxy_pass http://127.0.0.1:9010; 
   }
}

nginx http自动跳转到https

server{
   # 监听的端口
   listen      80;
   # 绑定的域名,多个用空格分开即可。
   server_name prvt.cool www.prvt.cool;
   # 自动跳转到https
   rewrite ^(.*)$ https://$host$1 permanent;
}

nginx 配置https最简单的用法,比如您的其他服务端程序,配置证书很麻烦时,可以尝试用NGINX。

server{
        # 一般采用443,也适用其他端口
        listen      443;
        server_name prvt.cool www.prvt.cool;
        ssl on;
        
        # 可在服务商申请免费或收费的域名证书。
        # Linux 配置 pem key
        ssl_certificate /www/server/panel/vhost/cert/您证书存放的实际文件地址;
        ssl_certificate_key /www/server/panel/vhost/cert/您证书key存放的实际文件地址;
        
        # Windows 配置 pem key
        #ssl_certificate d://您证书存放的实际文件地址;
        #ssl_certificate_key d://您证书key存放的实际文件地址;
        
        ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        ssl_prefer_server_ciphers on;
        ssl_session_cache shared:SSL:10m;
        ssl_session_timeout 10m;
        
        location / {
           # 代理的地址 
           proxy_pass http://127.0.0.1:9010; 
        }
    }

虚拟目录(比如说把静态资源交给nginx处理),有些服务端应用,在处理静态文件时,可能比较麻烦,也可以尝试使用这种方式。

location /upload/ {
    alias D:/website/prvt.cool/files/upload/;
}

nginx 开启缓存,减少服务端请求

proxy_cache_path 服务器物理路径/nginx-cache keys_zone=my-cache:10m use_temp_path=off;
server {

      # .... 其他配置
      
      location / {
      
         # .... 其他配置

         proxy_cache  my-cache;
         # 只缓存状态码是 200 的响应,缓存时间为 10 分钟,支持S M H
         proxy_cache_valid 200 10M;
         
         # 代理的地址 
         proxy_pass http://127.0.0.1:9010;
      }
}

相关推荐