【发布时间】:2021-01-14 03:54:01
【问题描述】:
如何让 http(80) 和 https(443) 在不同的端口上工作,比如 http 为 8000,https 为 4443
基本上我的要求是让请求来自端口 8000 而不是通常的端口 http 80 并且应该发生 https 重定向(被重定向)到端口说 4443 而不是常规的 https 端口 443。
上述情况是否可能。
如果是,我需要在 nginx default.conf 文件中进行哪些更改才能正常工作。
nginx web服务器常用的default.conf文件
server {
if ($host = example.co.uk) {
return 301 https://example.co.uk$request_uri;
}
server_name example.co.uk;
listen 80;
return 404;
}
server {
listen 443 ssl;
server_name example.co.uk;
ssl_certificate /etc/nginx/fullchain.pem;
ssl_certificate_key /etc/nginx/privkey.pem;
ssl_buffer_size 8k;
ssl_dhparam /etc/ssl/certs/dhparam-2048.pem;
# listen ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1.3 TLSv1.2;
ssl_prefer_server_ciphers on;
############################################################################################
ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5;
ssl_ecdh_curve secp384r1;
ssl_session_tickets off;
# OCSP stapling
ssl_stapling on;
ssl_stapling_verify on;
##########################################################################################
access_log /var/log/nginx/jenkins.access.log;
location / {
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;
#####################################
# proxy_buffers 8 8k;
# proxy_buffer_size 8k;
proxy_buffering on;
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
#####################################
# Fix the “It appears that your reverse proxy set up is broken" error.
proxy_pass http://example:8080;
#proxy_read_timeout 90;
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;
proxy_redirect http://example:8080 https://example:8080;
}
}
自定义的 nginx 的 default.conf 我试图让它现在没有成功
server {
if ($host = example.co.uk:8000) {
return 301 https://example.co.uk:4443$request_uri;
}
server_name example.co.uk;
listen 8000;
return 404;
}
server {
listen 4443 ssl;
server_name example.co.uk;
ssl_certificate /etc/nginx/fullchain.pem;
ssl_certificate_key /etc/nginx/privkey.pem;
ssl_buffer_size 8k;
ssl_dhparam /etc/ssl/certs/dhparam-2048.pem;
# listen ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1.3 TLSv1.2;
ssl_prefer_server_ciphers on;
############################################################################################
ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5;
ssl_ecdh_curve secp384r1;
ssl_session_tickets off;
# OCSP stapling
ssl_stapling on;
ssl_stapling_verify on;
##########################################################################################
access_log /var/log/nginx/jenkins.access.log;
location / {
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;
#####################################
# proxy_buffers 8 8k;
# proxy_buffer_size 8k;
proxy_buffering on;
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
#####################################
# Fix the “It appears that your reverse proxy set up is broken" error.
proxy_pass http://example:8080;
#proxy_read_timeout 90;
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;
proxy_redirect http://example:8080 https://example:8080;
}
}
有人可以帮我解决这个问题吗?
感谢和问候
【问题讨论】:
标签: nginx