Nginx配置多个目录网站
😂 这篇文章最后更新于1453天前,您需要注意相关的内容是否还可用。
例如将一个网站放在/home/pi/www/html,另一个放在/home/pi/www/blog中,第一个目录是我的Nginx默认路径因此不用配置,咱来配置第二个,并且假如第二个我有域名xx.com
- 在Nginx配置目录下,创建一个”vhost”目录。本例假设Nginx是默认安装,配置目录在”/etc/nginx”
$ sudo mkdir /etc/nginx/vhost
- 创建siteA的配置文件
$ sudo vi /etc/nginx/vhost/vhost_siteA.conf
输入以下配置信息
server {
listen 80; # 监听端口
server_name xx.com www.xx.com; # 站点域名
root /home/pi/www/blog; # 站点根目录
index index.html index.htm index.php; # 默认导航页
location / {
# WordPress固定链接URL重写 一般网站不需要 根据实际情况去留
if (!-e $request_filename) {
rewrite (.*) /index.php;
}
}
# PHP配置 sock路径根据实际安装而定
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.3-fpm.sock;
}
}
- 打开nginx.conf文件
sudo vi /etc/nginx/nginx.conf
- 将虚拟目录的配置文件加入到”http {}”部分的末尾
http {
...
include /etc/nginx/vhost/*.conf;
}
- 重启Nginx服务
$ sudo service nginx restart
- 现在访问localhost和xx.com,你将发现浏览器会打开不同的站点
- 当然如果你想继续添加网站目录,域名为yy,那同上继续同siteA一样创建siteB的配置文件,两者仅有的不同是”server_name”和”root”目录
$ sudo vi /etc/nginx/vhost/vhost_siteB.conf
配置内容如下简写,由于nginx.conf里用通配符匹配配置目录下所有配置文件,因此不用配置nginx.conf,只需要重启下nginx即可,然后访问yy.com你将又打开另个网站
server {
...
server_name www.yy.com yy.com; # 站点域名
root /home/pi/www/forum; # 站点根目录
...
}
禁止访问小技巧
假如你的Nginx根目录设在”/home/user/www”,你想阻止别人通过”http://IP地址/blog”或”http://IP地址/forum”来访问你的站点,最简单的方法就是禁止IP地址访问。方法如下:
- 打开Nginx网站默认配置文件,记得先备份
$ sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default_bak
$ sudo vi /etc/nginx/sites-available/default
- 将所有内容删除,只留以下配置
server {
listen 80 default_server;
server_name _;
return 404;
}
- 重启Nginx后,别人将无法通过IP地址访问网站了
如果你不想禁止IP地址访问整个目录,只是要防止别人通过IP访问你的博客和论坛。那就需要禁止”/blog”和”/forum”的目录访问。
-
打开Nginx网站默认配置文件,同上面一样,记得先备份
-
在”server { }”部分加上以下配置
location ^~ /blog/ {
deny all;
}
location ^~ /forum/ {
deny all;
}
- 重启Nginx即可
来源参考:https://www.cnblogs.com/Erick-L/p/7066564.html
留言评论
暂无留言