这太奇怪了。我已将nginx配置为同时侦听端口80和443。我只想要443上的SSL,但非SSL正在显示Nginx默认页面。我找到了一种将端口80流量重定向到443的解决方案,如下所示:
return 301 https://$host$request_uri;
这似乎可行,但是在测试完我的网站后,我注意到所有路由上的所有请求都被重定向到我的主页。此后,我删除了上面的配置,但它仍然存在。
我还没有编辑/etc/nginx/nginx.conf
这是我当前的配置。我该如何撤消呢?预先感谢
/ etc / nginx / sites-available / default
server {
listen 80 default_server;
listen [::]:80 default_server;
### << this is where I had the above redirect line >> ###
# SSL configuration
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
ssl_certificate /path/to//cert.pem;
ssl_certificate_key /path/to/privkey.pem;
root /var/www/html;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
}
/ etc / nginx / sites-available / mysite
server {
listen 443 ssl;
server_name example.com www.example.com;
root /var/www/example.com;
location / {
include proxy_params;
proxy_pass http://unix:/myproject.sock;
}
}
此外,如何仅实现/强制连接到SSL / https?
答案 0 :(得分:0)
您即将使其工作;只有您在默认配置文件上添加了重定向。这是一个坏主意,因为它有时会像您现在遇到的那样产生不良副作用。
/etc/nginx/sites-available/mysite
中的可以包含多个server{}
块。
/ etc / nginx / sites-available / mysite
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name example.com www.example.com;
root /var/www/example.com;
location / {
include proxy_params;
proxy_pass http://unix:/myproject.sock;
}
}