如何使用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并指定證書(shū)路徑:
server { listen 443 ssl; listen [::]:443 ssl; # 支持IPv6 server_name example.com www.example.com; # SSL證書(shū)配置 ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # 替換為您的證書(shū)路徑 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)用配置
# 檢查配置語(yǔ)法是否正確 sudo nginx -t # 重新加載Nginx使配置生效 sudo systemctl reload nginx
6. 驗(yàn)證配置
訪(fǎng)問(wèn) http://example.com
,應(yīng)自動(dòng)跳轉(zhuǎn)到 https://example.com
。
使用瀏覽器開(kāi)發(fā)者工具檢查網(wǎng)絡(luò)請(qǐng)求,確認(rèn)返回狀態(tài)碼為301或307。
使用SSL檢測(cè)工具(如SSL Labs)檢查HTTPS配置安全性。
注意事項(xiàng)
證書(shū)路徑:確保ssl_certificate
和ssl_certificate_key
指向正確的證書(shū)和私鑰文件(如Let's Encrypt證書(shū))。
多域名支持:若需處理多個(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配置,排查問(wèn)題。
方法補(bǔ)充
nginx 80端口重定向到443端口
nginx 80端口重定向到443端口,也就是http訪(fǎng)問(wèn)自動(dòng)跳轉(zhuǎn)到https
配置如下:
1.按照如下格式修改nginx.conf 配置文件,80端口會(huì)自動(dòng)轉(zhuǎn)給443端口,這樣就強(qiáng)制使用SSL證書(shū)加密了。訪(fǎng)問(wèn)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搭建RTMP視頻點(diǎn)播、直播、HLS服務(wù)器
本文主要介紹了利用nginx搭建RTMP視頻點(diǎn)播、直播、HLS服務(wù)器,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05Nginx結(jié)合Openresty通過(guò)Lua+Redis實(shí)現(xiàn)動(dòng)態(tài)封禁IP
為了封禁某些爬蟲(chóng)或者惡意用戶(hù)對(duì)服務(wù)器的請(qǐng)求,我們需要建立一個(gè)動(dòng)態(tài)的 IP 黑名單,本文主要介紹了Nginx結(jié)合Openresty通過(guò)Lua+Redis實(shí)現(xiàn)動(dòng)態(tài)封禁IP,感興趣的可以了解一下2023-11-11安裝OpenResty(Nginx倉(cāng)庫(kù))
這篇文章主要介紹了安裝OpenResty(Nginx倉(cāng)庫(kù)),需要的朋友可以參考下2023-06-06Ubuntu安裝Nginx全過(guò)程(在線(xiàn)安裝&源碼編譯安裝)
介紹了在Ubuntu 20.04上安裝Nginx的兩種方式:apt安裝和源碼編譯安裝,apt安裝簡(jiǎn)單,但模塊有限;源碼編譯安裝可以自定義模塊,更靈活2025-03-03Nginx緩存在服務(wù)端 代理和客戶(hù)端的區(qū)別深入探索
這篇文章主要介紹了Nginx緩存在服務(wù)端 代理和客戶(hù)端的區(qū)別深入探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10nginx中的location路徑配置(實(shí)路徑和虛路徑)
這篇文章主要介紹了nginx中的location路徑配置(實(shí)路徑和虛路徑),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06