我怎样才能优化NGINXconfiguration?

这是一个虚拟主机的configuration。

我必须将所有的HTTP请求redirect到HTTPS和所有的website.it到www.website.it

我能优化一些东西吗?

server { listen 80; server_name website.it www.website.it; if ($host = 'website.it' ) { rewrite ^(.*)$ https://www.website.it$1 permanent; } rewrite ^(.*)$ https://$host$1 permanent; } server { listen 443; server_name website.it www.website.it; ssl on; ssl_certificate /etc/ssl/nginx/www.website.it/www.website.it.crt; ssl_certificate_key /etc/ssl/nginx/www.website.it/www.website.it.key; root /home/nginx/vhosts/website.it/web; access_log /home/nginx/vhosts/website.it/log/access.log; error_log /home/nginx/vhosts/website.it/log/error.log; if ($host = 'website.it' ) { rewrite ^(.*)$ https://www.website.it$1 permanent; } location / { index index.php; try_files $uri $uri/ /index.php; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9003; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include /etc/nginx/fastcgi_params; } } 

谢谢!

我想你可以使用这个:

 server { listen 80; server_name website.it www.website.it; rewrite ^ https://www.website.it$request_uri? permanent; } 

我几乎在https://self-evident.org/上完成了这个工作,但我忘记了从哪里获得配方。

[更新…两次]

对于SSL部分,我会把它分成两段:

 server { listen 443; server_name website.it; ssl on; ssl_certificate /etc/ssl/nginx/www.website.it/www.website.it.crt; ssl_certificate_key /etc/ssl/nginx/www.website.it/www.website.it.key; rewrite ^ https://www.website.it$request_uri? permanent; } server { listen 443; server_name www.website.it; [etc.] } 

我怀疑nginx已经很好的select了基于server_name的“服务器”节。 解释的“如果”条款几乎肯定会变慢。

你可以删除这一行,因为下面是包含这种情况的更一般的声明:

 # delete this: if ($host = 'website.it' ) { rewrite ^(.*)$ https://www.website.it$1 permanent; }