我有一個網站,可以通過輸入IP address. 我想讓它只能通過domain. 網上合適的資料很少,在nginx.conf檔案的頌歌中沒有很好的說明要替換什么。
在我的檔案中已經有 2 個名為server.
server {
listen 80;
server_name avoe.com;
rewrite ^ https://avoe.com$request_uri? permanent;
}
server {
listen 443 ssl;
server_name avoe.com;
ssl_certificate /etc/ssl/__reksoft_ru.crt;
ssl_certificate_key /etc/ssl/private.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
add_header X-Frame-Options "SAMEORIGIN";
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
client_body_buffer_size 8k;
client_max_body_size 20m;
client_body_in_single_buffer on;
client_header_buffer_size 1m;
large_client_header_buffers 4 8k;
location /Intra/api/thumbor/ {
proxy_pass http://thumbor/;
}
location /solr {
proxy_pass http://solr;
}
location /minio {
proxy_pass http://minio;
}
location /activemq {
proxy_pass http://activemq;
}
location / {
proxy_pass http://wildfly/;
proxy_buffer_size 16k;
proxy_buffers 16 16k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
proxy_read_timeout 180s;
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;
if ($request_method !~ ^(GET|HEAD|POST|DELETE|PUT)$ ) {
return 405;
}
}
在何處添加或替換什么,以便只能通過域訪問?
uj5u.com熱心網友回復:
您可以確保 HTTPHost標頭設定avoe.com如下:
if ($http_host != 'avoe.com') {
return 301 https://avoe.com$request_uri;
}
uj5u.com熱心網友回復:
您可以使用默認服務器塊來捕獲所有請求,其中HostHTTP 標頭與server_name任何其他定義的服務器塊中的指令指定的任何服務器名稱不匹配。為此,您可以使用指令的default_server標志listen:
server {
listen 80 default_server;
listen 443 default_server ssl;
ssl_certificate /some/path/file.crt;
ssl_certificate_key /some/path/file.key;
return 444; # silently drop the connection
}
有關更多詳細資訊,請參閱nginx 如何處理請求官方檔案頁面,或查看此答案以獲取更多詳細資訊。
上述配置將需要有效的證書/密鑰對。您不需要公開avoe.com域的證書(此外,通常您不希望攻擊者看到您的服務器上托管的域),因此任何自簽名證書對于上述服務器塊都足夠了。要在一行中生成一對自簽名密鑰/證書,您可以使用以下命令:
openssl req -nodes -new -x509 -subj "/CN=localhost" -keyout /some/path/file.key -out /some/path/file.crt
uj5u.com熱心網友回復:
將此配置用作偵聽埠 80 的服務器:
server {
listen 80;
server_name avoe.com default_server;
if ($host = avoe.com) {
return 301 https://$host$request_uri;
}
return 404;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/348658.html
