macos nginx安装与配置

安装

1. 安装Homebrew

打开终端,输入

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

这个步骤可能比较漫长,傻瓜式安装就可以

确定mac是否安装了brew,直接输入brew命令,看见返回信息,就说明已经安装了

2.依赖Homebrew安装Nginx

终端输入

brew install nginx

继续需要漫长的等待
可以使用 nginx -v来查看当前安装的版本,也可以验证 Nginx 是否安装成功

3.启动Nginx

终端输入

nginx

输入这个命令后,终端没有任何新的提示。打开浏览器,输入 localhost:8080 如果出现一下界面,就说明安装成功,否者重复上面的步奏

安装成功

到这里,nginx的安装已经基本完成。下面就是配置相关的设置了

配置

常用目录

/usr/local/Cellar/nginx/1.12.2_1 (ngnix安装目录,后面的是当前安装的版本号,根据实际情况可能不同)
/usr/local/var/www (服务器默认路径)
/usr/local/etc/nginx (nginx配置文件所在位置)

常用命令

启动: nginx
退出: nginx -s quit 、nginx -s stop
重新加载: nginx -s reload
如果命令前面加 sudo 表示使用超级管理员的身份启动

配置nginx进入配置文件目录 /usr/local/etc/nginx 打开nginx.conf 文件

可以看到很多配置信息

#user  nobody;
# 在配置文件的顶级main部分,代表worker角色的工作进程的个数
worker_processes  1;
# 错误日志
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
# 进程文件
#pid        logs/nginx.pid;

events {
# 写在events部分。每一个worker进程能并发处理(发起)的最大连接数
    worker_connections  1024;
}

http {
    # 文件扩展名与文件类型映射表
    include       mime.types;
    # 设定默认文件类型
    default_type  application/octet-stream;
     # 为Nginx服务器设置详细的日志格式
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';
   
    #access log 记录了哪些用户,哪些页面以及用户浏览器、ip和其他的访问信息
    # access log 路径
    #access_log  logs/access.log  main;

    # 开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。
    sendfile        on;
    #tcp_nopush     on;

    #心跳检测,用于重连等操作
    #keepalive_timeout  0;
    keepalive_timeout  65;
    #gzip  on;

    # 这个是常修改的配置
    # 虚拟主机配置
    server {
        # 监听端口
        listen       8080;
        # 域名设定,可以有多个
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            # 访问当前端口时,默认映射查找的文件目录地址
            # 默认为 /usr/local/var/www
            # 如果自己配置 service 修改root 地址为你的文件所在目录
            root   html; 
            # 定义路径下默认访问的文件名
            index  index.html index.htm;
        }

        # 错误页面配置

        #error_page  404              /404.html;
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        } 
    }


    # 配置信息文件夹,会加载这个文件夹下的所有配置文件
    include servers/*;
}

配置文件默认访问的是8080端口,如果我们想访问其他的端口,我们在 nginx.conf 文件中进行配置即可

1.配置虚拟主机

就是在一台服务器启动多个网站。
如何区分不同的网站:1.域名不同 2.端口不同

1.1 通过端口区分不同虚拟机

/usr/local/etc/nginx/nginx.conf 可以配置多个server,配置多个虚拟主机。

比如我新增的配置如下

server {
        # 监听 81 端口
        listen       81;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            # 访问   /Users/LXX/HBuilderProjects/Html5Test 文件
            root   /Users/LXX/HBuilderProjects/Html5Test;
            # 默认访问  Canvas.html;
            index  Canvas.html;
        }
    }

保存配置文件后,让nginx重新加载配置文件 nginx -s reload
在浏览器中输入http://localhost:81/ 即可访问到指定的文件

访问81端口

1.2 通过域名区分虚拟主机

先掌握几个关键名词

  • 域名:就是网站 如 www.baidu.com
  • Dns服务器:把域名解析为ip地址。保存的就是域名和ip的映射关系。
    一个域名对应一个ip地址,一个ip地址可以被多个域名绑定。

本地测试可以修改hosts文件。
mac电脑的hosts文件位置 /private/etc/hosts 如果要修改hosts 文件,需要先拷贝hosts 文件到其他位置,修改完成后再复制到/private/etc文件夹下
可以配置域名和ip的映射关系,如果hosts文件中配置了域名和ip的对应关系,不需要走dns服务器。

  1. 修改hosts文件

192.168.14.101 www.taibai.com
192.168.14.101 www.baide.com

2.增加虚拟主机

server {
        listen       80;
        server_name  www.taibai.com;
        location / {
            root    /Users/LXX/HBuilderProjects/TestHtml;
            index  CSS.html;
        }
    }
 server {
        listen       80;
        server_name  www.baide.com;
        location / {
            root    /Users/LXX/HBuilderProjects/TestHtml;
            index  index.html index.htm;
        }
    }

2.实现反向代理

3.负载均衡
未完待续

推荐阅读更多精彩内容