CentOS雲主機中Nginx反向代理http、https服務
代理 http 服務
在目錄/apps/conf/nginx/vhosts
新建檔案比如a.test.com,檔案內容如下
server
{
listen 80;
server_name a.test.com ;
location /
{
expires 302400s;
proxy_pass url; //自定義要真正訪問的HTTP服務
}
access_log /apps/logs/nginx/a.test.com.log log_access;
}
然後在nginx.conf的http塊中新增
include /apps/conf/nginx/vhosts/*.com;
重啟下nginx,本地配上server_name的host就可以實現http服務的代理
測試
curl --proxy ip:80 http://a.test.com
代理 https 服務
因為 Nginx 不支援 CONNECT,所以無法代理 Https 服務網站。
如果訪問 Https 網站,比如:https://www.baidu.com,Nginx access.log 日誌如下:
“CONNECT www.baidu.com:443 HTTP/1.1” 400
nginx使用ssl模組配置HTTPS支援
這裡要使用到OpenSSL, 在nginx的conf目錄下建立證書和私鑰
建立伺服器私鑰,命令會讓你輸入一個口令
openssl genrsa -des3 -out server.key 1024
建立簽名請求的證書(CSR)
openssl req -new -key server.key -out server.csr
這個命令後會讓填一些證書資訊,詳見參考[2]
Country Name (2 letter code) [XX]:
State or Province Name (full name) []:
Locality Name (eg, city) [Default City]:
Organization Name (eg, company) [Default Company Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:
Email Address []:
在載入SSL支援的Nginx並使用上述私鑰時除去必須的口令
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key
最後標記證書使用上述私鑰和CSR
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
下面的配置內容和代理http服務有點類似,還用上面的檔案例子
server
{
listen 443;
server_name a.test.com;
ssl on;
ssl_certificate /apps/conf/nginx/conf/server.crt;
ssl_certificate_key /apps/conf/nginx/conf/server.key;
location /
{
expires 302400s;
proxy_pass https://XXXX; //這裡可以是http或https
}
access_log /apps/logs/nginx/a.test.com.log log_access;
}
然後配置下本地host就可以了。
還可以將http請求重定向到https,例如下面配置
server {
listen 80;
server_name a.test.com;
rewrite ^(.*) https://$server_name$1 permanent;
}
[參考資料]
[1] nginx使用ssl模組配置HTTPS支援
[2] Nginx 配置 SSL 證書 + 搭建 HTTPS 網站教程
相關文章
- nginx的https和http共存反向代理配置NginxHTTP
- nginx反向代理多個服務Nginx
- nginx代理http2服務NginxHTTP
- haproxy反向代理環境部署(http和https代理)HTTP
- nginx配置web服務|反向代理|負載均衡NginxWeb負載
- nginx做正向代理(Centos7,支援http和https)NginxCentOSHTTP
- Nginx(五):http反向代理的實現NginxHTTP
- 騰訊雲伺服器Nginx反向代理的Photoprism(包括https設定)伺服器NginxHTTP
- centos7 搭建 nginx web服務 反代理CentOSNginxWeb
- Nginx 根據不同的域名來代理轉發內部主機-HTTP和HTTPSNginxHTTP
- Nginx代理服務Nginx
- Nginx反向代理Nginx
- nginx 反向代理Nginx
- nginx正向代理、反向代理Nginx
- 基於Apache搭建HTTP HTTPS 正向代理 反向代理伺服器ApacheHTTP伺服器
- Nginx服務系列——代理Nginx
- Docker安裝Redmine並使用Nginx反向代理為httpsDockerNginxHTTP
- mac環境下配置nginx反向代理,https協議MacNginxHTTP協議
- nginx通過https方式反向代理多例項tomcatNginxHTTPTomcat
- Nginx 配置:反向代理Nginx
- Nginx 配置反向代理Nginx
- [Nginx] TCP 反向代理NginxTCP
- Nginx 反向代理 websocketNginxWeb
- nginx: 高效能http和反向代理伺服器NginxHTTP伺服器
- Nginx 教程二:利用nginx搭建靜態檔案服務、正向代理伺服器、反向代理伺服器Nginx伺服器
- 阿里雲配置 node.js + Nginx 反向代理阿里Node.jsNginx
- Nginx反向代理+負載均衡簡單實現(https方式)Nginx負載HTTP
- Nginx之路--配置正向代理、反向代理Nginx
- Nginx正向代理和反向代理配置Nginx
- nginx 反向代理 swoole 使用Nginx
- nginx 反向代理設定Nginx
- Nginx四層反向代理Nginx
- 阿里雲伺服器部署 nodejs + mongodb + nginx 反向代理 + https配置 ssl證書阿里伺服器NodeJSMongoDBNginxHTTP
- Nginx配置正向代理支援HTTP和HTTPS轉發NginxHTTP
- HTTP-Reverse-Proxy反向代理Nginx硬體指紋校驗HTTPNginx
- centos7下配置nginx反向代理負載均衡叢集CentOSNginx負載
- centos使用node搭建https服務CentOSHTTP
- Nginx之location中反向代理proxy_pass配置Nginx