天天看點

nginx 代理轉發 http https 基本用法

作者:PrvtSite

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;
      }
}           

人人為我,我為人人,歡迎您的浏覽,我們一起加油吧。

繼續閱讀