lnmp 服务器架设好,配置nginx,实现多个网站分别绑定各个域名
这里以域名:www.mysite.com为例
1.在/usr/local/nginx/conf/vhost文件夹中创建mysite.conf文件
2.在其中写入如下内容并保存:
server {
listen 80; # 网站的端口一般为 80,可以与其他网站一起使用该端口
server_name www.mysite.com; # 要绑定的域名(或子域名)
root /home/www/mysite; # 该网站的根目录
location / { # 不用管
}
}
3.nginx -s reload 重启服务即可生效。
那如何禁止用户通过IP地址直接访问WEB服务.
利用nginx的default_server可以很容易地实现该功能:
server {
listen 80 default_server;
server_name _;
return 403;
}
server {
listen 80;
server_name mydomain.com;
location / {
}
}
上述nginx配置中有两个server都监听了80端口,第一个server设置为default_server, server_name为任意域名;第二个server域名设置为mydomain.com. 当http请求到达nginx时,如果是通过mydomain.com访问的(header中Host字段为mydomain.com),则该请求会匹配到第二个server, 由该server进行处理,否则由第一个default server进行处理,default server直接返回403禁止访问状态码。
上述配置中,不是通过mydomain.com访问nginx, 会直接返回403的状态码, 返回页面为nginx默认的403错误页面。
如果需要替换这个默认的静态的403页面,可以把default server配置成一个静态的server, 请求匹配到该server时直接返回一个自定义的403页面,nginx配置如下所示:
server {
listen 80 default_server;
server_name _;
index 403.html;
}
server {
listen 80;
server_name mydomain.com;
location / {
}
}
或
server {
listen 80;
server_name www.mydomain.com;
if ($host != 'www.mydomain.com'){
return 403;
}
这样不通过mydomain.com访问nginx,就可以返回自定义的403错误页面了。