Mac电脑OS系统下安装Nginx的详细教程


Posted in Servers onApril 14, 2022

目录


一、前言

本文介绍一下,如何在Mac系统中安装Nginx,把详细过程记录下来,方便以后查看,也方便大家学习。

二、正文

1、安装 Homebrew

homebrew是什么?它是Mac中的一款软件包管理工具,通过brew可以很方便的在Mac中安装软件或者是卸载软件。不了解的同学看以看官网(https://brew.sh/index_zh-cn.html), 然后在我们命令行中复制如下命令:

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

运行,如下所示:

Mac电脑OS系统下安装Nginx的详细教程

安装成功后的话,我们可以使用命令 “brew update”更新下;如下命令:

brew update

Mac电脑OS系统下安装Nginx的详细教程

有关brew常用的指令如下:

1. brew搜索软件命令: brew search nginx
2. brew安装软件命令: brew install nginx
3. brew卸载软件命令: brew uninstall nginx
4. brew升级命令: sudo brew update
5. 查看安装信息(比如查看安装目录等) sudo brew info nginx
6. 查看已经安装的软件:brew list

2、brew安装nginx

2.1、使用brew安装nginx,如下命令所示:

brew install nginx

如下图所示:

Mac电脑OS系统下安装Nginx的详细教程

2.2、查看nginx的配置信息,如下命令:

brew info nginx

Mac电脑OS系统下安装Nginx的详细教程

如上面的截图,From:xxx 这样的,是nginx的来源,Docroot默认为 /usr/local/var/www, 在/usr/local/etc/nginx/nginx.conf 配置文件中默认的端口为8080, 且nginx将在/usr/local/etc/nginx/servers 目录中加载所有文件。并且我们可以通过最简单的命令'nginx' 来启动nginx.

2.3、查看nginx安装目录, 如下命令:

open /usr/local/etc/nginx/

如下图所示:

Mac电脑OS系统下安装Nginx的详细教程

打开nginx目录后,可以看到我们上面的使用 brew info nginx 查看信息所说的 server目录以及nginx.conf的配置文件,那么我们的nginx被安装到什么地方呢?我们从上面的截图可以看到,是在 这个目录下 /usr/local/Cellar/nginx,执行如下命令可以查看到:

open /usr/local/Cellar/nginx

会打包目录,如下图所示:

Mac电脑OS系统下安装Nginx的详细教程

进入上面的 1.15.5文件后,如下图所示:

Mac电脑OS系统下安装Nginx的详细教程

在该目录下可以看到一个名字为html的快捷方式的文件夹,进入该目录后,它有两个文件50.html和index.html,如下图所示:

Mac电脑OS系统下安装Nginx的详细教程

其实它是指向的就是 /usr/local/var/wwww目录的,为什么这么说,我们来看下进入该命令后,查看下面有哪些文件就可以看到,如下图:

Mac电脑OS系统下安装Nginx的详细教程

3、启动nginx服务,如下命令:

brew services start nginx // 重启的命令是: brew services restart nginx

如下图所示:

Mac电脑OS系统下安装Nginx的详细教程

重启后,我们验证下,因为nginx默认的端口号是8080,因此我们页面访问 http://localhost:8080 即可,看到如下信息:

Mac电脑OS系统下安装Nginx的详细教程

如果成功的话,一般都是 欢迎的界面(index.html页面我自己改过),下面我们继续查看下nginx.conf 配置信息,使用如下命令:

cat /usr/local/etc/nginx/nginx.conf // 或者使用 sudo open /usr/local/etc/nginx/nginx.conf -a 'sublime text' 使用编辑器sublime打开。

如下配置信息:

#user  nginx;
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 {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #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  logs/access.log  main;

    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 / {
            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;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }

    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}
    include servers/*;
}

如上,就可以使用nginx搭建本地服务了。

三、总结nginx常见的配置

nginx的配置文件路径:/usr/local/etc/nginx/nginx.conf
nginx的服务器默认路径:/usr/local/var/www
nginx的安装路径:/usr/local/Cellar/nginx/1.15.5

1、nginx启动:

1.1、在终端输入 ps -ef|grep nginx 命令看是否有启动,如下:

Mac电脑OS系统下安装Nginx的详细教程

1.2、验证配置文件是否正确,因此在启动nginx之前,我们可以先运行下如下命令:

sudo /usr/local/Cellar/nginx/1.15.5/bin/nginx -t -c /usr/local/etc/nginx/nginx.conf

注意:一定要注意路径是否是自己的安装路径。这边我的nginx是1.15.5版本的。

Mac电脑OS系统下安装Nginx的详细教程

如果出现如下信息,说明配置文件正确。

nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok 
nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful

重启nginx有如下几种方法:

1.3、通过brew,brew services start nginx(启动nginx) brew services restart nginx(重启命令), 如下所示:

Mac电脑OS系统下安装Nginx的详细教程

1.4、先进入bin目录:cd /usr/local/Cellar/nginx/1.15.5/bin/, 然后再执行:./nginx -s reload, 如下所示:

Mac电脑OS系统下安装Nginx的详细教程

1.5、根据进程号重启,执行命令 kill -HUP 进程号  如下所示:

Mac电脑OS系统下安装Nginx的详细教程

2、nginx停止

终端输入ps -ef|grep nginx获取到nginx的进程号, 注意是找到“nginx:master”的那个进程号

Mac电脑OS系统下安装Nginx的详细教程

注意:

kill -QUIT 72 (从容的停止,即不会立刻停止)

Kill -TERM 72 (立刻停止)

Kill -INT 72 (和上面一样,也是立刻停止)

Servers 相关文章推荐
nginx常用命令放入shell脚本详解
Mar 31 Servers
Nginx解决403 forbidden的完整步骤
Apr 01 Servers
Minikube搭建Kubernetes集群
Mar 31 Servers
Nginx利用Logrotate实现日志分割
May 20 Servers
在虚拟机中安装windows server 2008的图文教程
Jun 28 Servers
nginx之queue的具体使用
Jun 28 Servers
Nginx配置使用详解
Jul 07 Servers
Nginx代理Redis哨兵主从配置的实现
Jul 15 Servers
Linux在两个服务器直接传文件的操作方法
Aug 05 Servers
ssh服务器拒绝了密码 请再试一次已解决(亲测有效)
Aug 14 Servers
CentOS7 minimal 最小化安装网络设置过程
Dec 24 Servers
Docker 镜像介绍以及commit相关操作
Docker官方工具docker-registry案例演示
Apr 13 #Servers
Nginx反向代理、重定向
Docker下安装Oracle19c
nginx location 带斜杠【 / 】与不带的区别
Apr 13 #Servers
Linux下使用C语言代码搭建一个简单的HTTP服务器
idea下配置tomcat避坑详解
You might like
PHP 中dirname(_file_)讲解
2007/03/18 PHP
PHP在字符断点处截断文字的实现代码
2011/04/21 PHP
基于php-fpm 参数的深入理解
2013/06/03 PHP
PHP定时任务延缓执行的实现
2014/10/08 PHP
php格式化金额函数分享
2015/02/02 PHP
详解WordPress中给链接添加查询字符串的方法
2015/12/18 PHP
yii2 modal弹窗之ActiveForm ajax表单异步验证
2016/06/13 PHP
详解thinkphp中的volist标签
2018/01/15 PHP
JavaScript中的变量声明早于赋值分析
2012/03/01 Javascript
js面向对象 多种创建对象方法小结
2012/05/21 Javascript
深入理解JavaScript 闭包究竟是什么
2013/04/12 Javascript
node.js中RPC(远程过程调用)的实现原理介绍
2014/12/05 Javascript
使用three.js 画渐变的直线
2016/06/05 Javascript
JavaScript实现的CRC32函数示例
2016/11/23 Javascript
jQuery 出现Cannot read property ‘msie’ of undefined错误的解决方法
2016/11/23 Javascript
javascript中活灵活现的Array对象详解
2016/11/30 Javascript
JS查找字符串中出现最多的字符及个数统计
2017/02/04 Javascript
node 利用进程通信实现Cluster共享内存
2017/10/27 Javascript
微信小程序wx.request实现后台数据交互功能分析
2017/11/25 Javascript
vue动态改变背景图片demo分享
2018/09/13 Javascript
node.js的http.createServer过程深入解析
2019/06/06 Javascript
vue router 传参获取不到的解决方式
2019/11/13 Javascript
基于vue实现图片验证码倒计时60s功能
2019/12/10 Javascript
python编写暴力破解FTP密码小工具
2014/11/19 Python
python日期时间转为字符串或者格式化输出的实例
2018/05/29 Python
python3用PIL把图片转换为RGB图片的实例
2019/07/04 Python
python加密解密库cryptography使用openSSL生成的密匙加密解密
2020/02/11 Python
基于Python3.7.1无法导入Numpy的解决方式
2020/03/09 Python
利用django model save方法对未更改的字段依然进行了保存
2020/03/28 Python
英国知名的护肤彩妆与时尚配饰大型综合零售电商:Unineed
2016/11/21 全球购物
应届毕业生自我评价分享
2013/12/15 职场文书
黄继光的英雄事迹材料
2014/02/13 职场文书
社区党的群众路线教育实践活动剖析材料
2014/10/09 职场文书
2015年七一建党节演讲稿
2015/03/19 职场文书
初中数学教学随笔
2015/08/15 职场文书
教师培训学习心得体会
2016/01/21 职场文书