如何使用Nginx配置將80端口重定向到443端口
要將Nginx配置為將HTTP(80端口)請(qǐng)求重定向到HTTPS(443端口),請(qǐng)按照以下步驟操作:
1. 創(chuàng)建或編輯Nginx配置文件
通常配置文件位于/etc/nginx/sites-available/,您需要修改或創(chuàng)建相應(yīng)的配置文件(如default或您的站點(diǎn)配置)。
2. 配置HTTP重定向到HTTPS
在配置文件中添加以下內(nèi)容,將HTTP請(qǐng)求重定向到HTTPS:
server {
listen 80;
listen [::]:80; # 支持IPv6
server_name example.com www.example.com; # 替換為您的域名
# 強(qiáng)制重定向到HTTPS
return 301 https://$host$request_uri;
}
3. 配置HTTPS服務(wù)器塊
添加或修改443端口的配置,啟用SSL并指定證書路徑:
server {
listen 443 ssl;
listen [::]:443 ssl; # 支持IPv6
server_name example.com www.example.com;
# SSL證書配置
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # 替換為您的證書路徑
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # 替換為私鑰路徑
# 推薦SSL配置(增強(qiáng)安全性)
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256';
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
# HSTS(可選但推薦)
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
# 網(wǎng)站根目錄和其他配置
root /var/www/html;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
4. 檢查防火墻設(shè)置
確保服務(wù)器防火墻允許HTTP(80)和HTTPS(443)端口:
sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw reload
5. 測(cè)試并應(yīng)用配置
# 檢查配置語法是否正確 sudo nginx -t # 重新加載Nginx使配置生效 sudo systemctl reload nginx
6. 驗(yàn)證配置
訪問 http://example.com,應(yīng)自動(dòng)跳轉(zhuǎn)到 https://example.com。
使用瀏覽器開發(fā)者工具檢查網(wǎng)絡(luò)請(qǐng)求,確認(rèn)返回狀態(tài)碼為301或307。
使用SSL檢測(cè)工具(如SSL Labs)檢查HTTPS配置安全性。
注意事項(xiàng)
證書路徑:確保ssl_certificate和ssl_certificate_key指向正確的證書和私鑰文件(如Let's Encrypt證書)。
多域名支持:若需處理多個(gè)域名,在server_name中添加所有相關(guān)域名,或使用通配符*.example.com。
IPv6支持:若服務(wù)器啟用IPv6,需包含listen [::]:80;和listen [::]:443 ssl;。
HTTP/2:在HTTPS配置中添加http2以啟用HTTP/2:
listen 443 ssl http2; listen [::]:443 ssl http2;
錯(cuò)誤處理:若遇到重定向循環(huán),檢查SSL配置是否正確,或暫時(shí)注釋HTTPS配置,排查問題。
方法補(bǔ)充
nginx 80端口重定向到443端口
nginx 80端口重定向到443端口,也就是http訪問自動(dòng)跳轉(zhuǎn)到https
配置如下:
1.按照如下格式修改nginx.conf 配置文件,80端口會(huì)自動(dòng)轉(zhuǎn)給443端口,這樣就強(qiáng)制使用SSL證書加密了。訪問http的時(shí)候會(huì)自動(dòng)跳轉(zhuǎn)到https上面。
server {
server_name xxxx.com; # 域名
listen 80;
rewrite ^(.*) https://$server_name$1 permanent;
}
server {
listen 443 ssl;
listen [::]:443 ssl ipv6only=on;
ssl_certificate /etc/letsencrypt/live//fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live//privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live//chain.pem;
.... 其他配置信息
}
備注: ${server_name}可以換成$host
2.重啟nginx
3.示例(以下是我們生產(chǎn)的配置)
server {
listen 80;
server_name www.test.com;
rewrite ^(.*)$ https://${server_name}$1 permanent; }
server {
listen 443;
server_name www.test.com;
ssl on;
ssl_certificate /etc/pki/CA/certs/214321311540956.pem;
ssl_certificate_key /etc/pki/CA/certs/214321311540956.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
index index.php index.htm index.html;
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location ~ \.php {
root /alidata/www/html;
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf; set $path_info ""; set $fastcgi_script_name_new $fastcgi_script_name; if ($fastcgi_script_name ~* "^(.+\.php)(/.+)$" ) { set $fastcgi_script_name_new $1; set $path_info $2;
}
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name_new;
fastcgi_param SCRIPT_NAME $fastcgi_script_name_new;
fastcgi_param PATH_INFO $path_info;
}
location / {
root /alidata/www/html;
index index.php index.html index.htm; if (!-e $request_filename){
rewrite ^(.*)$ /index.php$1 last;
}
}
}到此這篇關(guān)于如何使用Nginx配置將80端口重定向到443端口的文章就介紹到這了,更多相關(guān)Nginx端口80重定向443內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
nginx代理實(shí)現(xiàn)靜態(tài)資源訪問的示例代碼
本文主要介紹了nginx代理實(shí)現(xiàn)靜態(tài)資源訪問的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06
Nginx結(jié)合keepalived實(shí)現(xiàn)集群
本文主要介紹了Nginx結(jié)合keepalived實(shí)現(xiàn)集群,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-05-05
nginx服務(wù)器access日志中大量400 bad request錯(cuò)誤的解決方法
這篇文章主要介紹了nginx服務(wù)器access日志中大量400 bad request錯(cuò)誤的解決方法,本文結(jié)論是空主機(jī)頭導(dǎo)致的大量400錯(cuò)誤日志,關(guān)閉默認(rèn)主機(jī)的日志記錄就可以解決問題,需要的朋友可以參考下2015-01-01
nginx添加http_ssl_module并且配置域名指定端口的操作方法
這篇文章主要介紹了nginx添加http_ssl_module并且配置域名指定端口的操作方法,文末附帶linux下防火墻和開放端口,需要的朋友可以參考下2023-11-11
Windows?Server?Nginx?反向代理Spring?Boot配置無效報(bào)404未找到的問題
一個(gè)Spring?Boot的系統(tǒng),開發(fā)完成發(fā)布到Windows服務(wù)器里,使用nginx作為反向代理,修改刷新配置文件,nginx.conf,總是報(bào)錯(cuò)404,這篇文章主要介紹了Windows?Server?Nginx?反向代理Spring?Boot配置無效?404?未找到的問題及解決方案2024-01-01
nginx basic認(rèn)證的實(shí)現(xiàn)示例
auth_basic作為一個(gè)認(rèn)證模塊,在apache和nginx中都很常用,本文主要介紹了nginx basic認(rèn)證的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下2024-08-08

