Gunicorn(綠色獨角獸)是一個Python WSGI HTTP服務器,用于部署Python Web應用程序。要隱藏Gunicorn服務器,您可以使用反向代理服務器,如Nginx或Apache。這樣,用戶將無法直接訪問Gunicorn服務器,而是通過代理服務器與您的Web應用程序進行交互。
以下是使用Nginx和Apache作為反向代理服務器的示例:
安裝Nginx(如果尚未安裝):
sudo apt-get install nginx
配置Nginx以將請求轉發到Gunicorn服務器:
sudo nano /etc/nginx/sites-available/your_app
在文件中添加以下內容:
server {
listen 80;
server_name your_domain_or_ip;
location / {
proxy_pass http://127.0.0.1:8000;
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;
}
}
保存并退出編輯器。創建一個符號鏈接以啟用該站點配置:
sudo ln -s /etc/nginx/sites-available/your_app /etc/nginx/sites-enabled/
測試Nginx配置是否正確:
sudo nginx -t
重新加載Nginx以應用更改:
sudo systemctl reload nginx
現在,您的Web應用程序將通過Nginx反向代理運行,用戶無法直接訪問Gunicorn服務器。
安裝Apache(如果尚未安裝):
sudo apt-get install apache2
安裝mod_proxy和mod_proxy_http模塊:
sudo a2enmod proxy
sudo a2enmod proxy_http
配置Apache以將請求轉發到Gunicorn服務器:
sudo nano /etc/apache2/sites-available/your_app.conf
在文件中添加以下內容:
<VirtualHost *:80>
ServerName your_domain_or_ip
ProxyPass / http://127.0.0.1:8000/
ProxyPassReverse / http://127.0.0.1:8000/
</VirtualHost>
保存并退出編輯器。啟用該站點配置:
sudo a2ensite your_app.conf
測試Apache配置是否正確:
sudo apachectl configtest
重新加載Apache以應用更改:
sudo systemctl reload apache2
現在,您的Web應用程序將通過Apache反向代理運行,用戶無法直接訪問Gunicorn服務器。