第一步查看nginx安装位置:

whereis nginx
    如果是配置多个项目,可以在nginx下新建www文件夹用于存放各个项目的下项目文件(生产环境)。因为默认的nginx/html是80端口的,这样做是为了和其他站点的区分。
    部署过程最重要的文件 nginx/conf/nginx.conf ,此文件是nginx配置文件、这里我们称它为主配置文件。
配置多站点时,可在 nginx 目录下创建个vhost 文件夹,并且为每个站点新建各自的配置文件。
(PS:其实也可以写在主配置文件中,这样区分是为了让各个站点的配置文件进行抽离,避免/conf/nginx.conf混乱)


第二步新建 vhost_XXX.conf

mkdir vhost
cd vhost
touch vhost_XXX.conf                  //xxx 项目名称,文件名称随意但是注意文件类型

子文件的配置 vhost_XXX.conf

server{
    listen       8090;                //监听端口
    server_name  localhost;           //域名
    #charset koi8-r;
    #access_log  /var/log/nginx/access.log  main;
    location / {
        root www/mi_project;          //项目所在目录,配置时是相对 /nginx  这个路径
        try_files $uri /index.html;   //找指定路径下文件,如果不存在,则转给哪个文件执行
    }
}

配置完,需要在主配置文件中末尾也就是/conf/nginx.conf 里面引入各个子站点配置文件

http {
    ....
    include /usr/local/nginx/vhost/*.conf;  //引入子配置文件,注意文件路径
}

第三步重新载配置

当每次修改了 /conf/nginx.conf 需要重启nginx

cd /usr/local/nginx/sbin                    //sbin文件夹
./nginx -s reload 

好了,赶紧看效果吧!!


第四步可能遇到的问题:

当我们在没上线前,使用类似http-proxy-middleware进行跨越,在上线的时候会发现失效了,这时候需设置nginx的路径重写可解决问题,配置rewrite或其他方式:

server {
        listen       80;
        server_name  localhost;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        location / {
            root   html;
            index  index.html index.htm;
            try_files $uri /index.html;
            rewrite ^/order/(.*)$  https://wirelesspub-order.xiaozhu.com/$1 break;  //!!!
            rewrite ^/app/(.*)$  https://wirelesspub.xiaozhu.com/app/$1 break;      //!!!
        }
}

第五步:配置nginx主配置文件

vim  /usr/local/nginx/conf/nginx.conf

在nginx配置文件http块中,加入下面一句

include /usr/local/nginx/webServer/*.conf; #表示包含我们刚才建立的配置文件

第六步:检查nginx配置文件是否正确

1 ./nginx -t
2 sudo nginx -t -c /etc/nginx/nginx.conf

第七步:重启nginx

./nginx -s reload

第八步:nginx只允许域名访问,禁止ip访问

新加的server(注意是新增,并不是在原有的server基础上修改)

server {
  listen 80 default;
  server_name _;
  return 403;
}

第九步:配置域名

站点的服务名必须与域名对应,即server_name就是相应的二级域名;同时需要在hosts文件中添加对应的配置

vim /etc/hosts

添加如下配置信息:

127.0.0.1 www.webA.com
127.0.0.1 admin.webA.com
127.0.0.1 www.webB.com

使用hostname+定义的主机名是hosts文件生效

hostname testHost

输入hostname可查看定义的主机名。