什麼是反向代理?

了解什麼是反向代理以及其有什麼用處! 在談到伺服器時,聽到「反向代理」這個詞是很常見的。 在本文中,我想解釋什麼是反向代理,以及它的作用。 首先,讓我們談一下「代理」這個詞。代理是一個伺服器,接受客戶端的連接,這些客戶端在其網絡設置中主動配置了代理伺服器。 當客戶端與伺服器建立連接時,請求始終通過該代理伺服器傳遞。 這種做法有幾種用途。公司和組織可以設置代理伺服器來過濾連接、提供更高的安全性並記錄流量。如果不使用代理,客戶端無法連接到外部網絡。代理伺服器還有助於提供隱私並避免國家政府對網絡的限制。 另一方面,反向代理是由伺服器設置的。對於客戶端而言,它是完全透明的,他們不知道這個中間人的存在,但它在伺服器上做了一個非常有用的工作,過濾請求並將它們發送到處理這些請求的相應服務。 常常使用Nginx作為反向代理(也可以參考我們的nginx反向代理文章),並且運行在內部端口上的Node.js服務不可以外界訪問。 在這種情況下,Nginx充當主要的請求處理程序,並將相應的請求發送到特定的服務,例如將特殊子文件夾或URL鏈接到特定服務。 我們可以有兩個完全不同的Node.js應用程序,而用戶不需要知道該信息。 除了我們開發人員主要使用的路由功能之外,反向代理還非常適合過濾和保護避免攻擊,作為防火牆,引入緩存,配置SSL,處理負載平衡,AB測試等等。

如何配置 Nginx 进行 HTTPS

如何使用 Let’s Encrypt 在您的 Web 服务器上设置 HTTPS 最近,我使用官方的 Node.js droplet 在 DigitalOcean 上设置了一个 VPS,它会安装 Ubuntu Linux 并将 Node 和 Nginx 配置为反向代理,也就是说,它是用户和您的 Node.js 应用程序之间的中间人。 默认情况下,droplet 配置为使用 HTTP,但我们希望我们的应用程序使用 HTTPS,这是 HTTP 的安全版本。 因此,我们需要进行一些操作,包括使用 Certbot 通过 Let’s Encrypt 获取 SSL 证书,并配置 Nginx 使用该证书。 我们将按照以下步骤进行操作: 安装 Certbot 和 Certbot Nginx 包 设置 Nginx 使用 Certbot 生成 SSL 证书 安装 Certbot 和 Certbot Nginx 包 以下说明假设您使用的是 Ubuntu、Debian 或任何使用 apt-get 管理软件包的其他 Linux 发行版: sudo apt-get install certbot python3-certbot-nginx 设置 Nginx 编辑 /etc/nginx/sites-available/default 文件以设置正确的服务器名称(这对于 SSL 是必需的):...

用於從子文件夾中提供多個Node.js應用程序的簡單nginx反向代理

最近我在DigitalOcean上設置了一個VPS,以在同一域名下運行幾個不同的Node.js腳本。 現在,您無法使兩個不同的Node.js應用程序監聽同一個端口,因此必須使用反向代理。常用的方法是使用Nginx。 我將每個Node應用程序設置為在自己的子文件夾中運行,所以我需要編輯Nginx配置: sudo nano /etc/nginx/sites-available/default 配置文件原始內容如下: server { listen 80 default\_server; listen [::]:80 default\_server; root /var/www/html; index index.html index.htm index.nginx-debian.html; server\_name hellonode; location ^~ /assets/ { gzip\_static on; expires 12h; add\_header Cache-Control public; } location / { proxy\_http\_version 1.1; proxy\_cache\_bypass $http\_upgrade; proxy\_set\_header Upgrade $http\_upgrade; proxy\_set\_header Connection 'upgrade'; proxy\_set\_header Host $host; proxy\_set\_header X-Real-IP $remote\_addr; proxy\_set\_header X-Forwarded-For $proxy\_add\_x\_forwarded\_for; proxy\_set\_header X-Forwarded-Proto $scheme; proxy\_pass http://localhost:3000; } } 這個配置允許一個Node.js應用程序在端口3000上運行,並且是主要在/處提供服務的應用程序。 我希望在/myservice下運行一個應用程序,所以我創建了一個在端口3001上監聽的Node應用程序,並添加了以下配置: location /myservice { rewrite ^/myservice/(....