我的要求是使请求来自端口 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;
}
}
我可以尝试什么来解决这个问题?
有可能,我刚刚在我的服务器上做到了。但我从不更改default.conf文件。
我在
/etc/nginx/sites-available
中创建了一个文件,然后使用 /etc/nginx/sites-enabled
创建了 ln -s firstDirectory secondDirectory
的快捷方式。