Apache更换nginx,伪静态和域名301跳转怎样设置?
明天非凡博客所在的云服务器到期,所以这两天倒腾了一下,原本打算直接换到虚拟主机,但发现另一台云服务器还有1年的时间,所以暂时先放到另一台云服务器了。
之前的Web环境采用了LAMP组合,这次打算试试LNMP,据说nginx相较Apache更节约内存资源,适合中小型网站使用,于是选择LNMP一键安装包部署了环境。
温馨提示:如果要使用LNMP一键安装包部署环境,建议服务器采用CentOS、Ubuntu、Debian等主流Linux系统镜像,像腾讯云自家的TencentOS这类小众发行版暂时还没有适配。
这里主要说说使用nginx环境之后,网站的伪静态和域名301重定向怎样设置。
伪静态设置
关于伪静态的设置就不多啰嗦了,网上有各种环境、各种网站程序的伪静态规则,但这里我想提醒的是,LNMP一键安装包默认附带了很多主流网站程序的伪静态规则,在添加虚拟主机的时候直接输入对应的网站程序名,即可直接引用对应的伪静态规则文件,其中包括WordPress、Discuz X、Typecho、ThinkPHP、ZBlog等。
如果这里没有你的网站程序,那就只能自己添加伪静态规则了,在/usr/local/nginx/conf/rewrite/目录下创建一个xxx.conf文件,将伪静态规则写入到这个文件,在对应的虚拟主机配置文件中直接调用你创建的伪静态规则文件即可。
域名301重定向
域名的301重定向是我们必须要设置的,为了集中权重,一般会将各种形式的域名通过301重定向跳转到其中一种域名,以前不需要安装SSL证书的时候,我们的域名基本只有两种形式:
http://xxx.com http://www.xxx.com
现在SSL证书基本已经成为标配,所以域名的形式也就扩展成了四种形式,除了上面提到的两种,还增加了另外两种:
https://xxx.com https://www.xxx.com
我的网站实现的效果是以上4种形式的域名最终都重定向到https://xxx.com这个顶级域名,在nginx的301重定向规则就是这样的:
1.打开网站对应的配置文件,路径一般为/usr/local/nginx/conf/vhost/xxx.com.conf
2.“listen 80“部分对应的是http设置,这里将server_name后面的域名设置为xxx.com www.xxx.com;
3.”listen 443”部分对应的是https设置,这里同样将server_name后面的域名设置为xxx.com www.xxx.com;
4.为了实现https://www.xxx.com跳转到https://xxx.com,在”listen 443”这部分的"root /home/wwwroot/xxx.com“下面添加一行重定向规则:
if ($host = 'www.xxx.com') { return 301 https://xxx.com$request_uri; }
至此设置完毕,保存退出配置文件,然后运行/etc/init.d/nginx restart,重启nginx即可实现所有形式的域名均重定向到https://xxx.com。