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 比 Apache 更牛逼
Mar 31 Servers
Nginx实现高可用集群构建(Keepalived+Haproxy+Nginx)
May 27 Servers
解决使用了nginx获取IP地址都是127.0.0.1 的问题
Sep 25 Servers
Nginx配置https的实现
Nov 27 Servers
详解使用内网穿透工具Ngrok代理本地服务
Mar 31 Servers
Nginx流量拷贝ngx_http_mirror_module模块使用方法详解
Apr 07 Servers
Nginx隐藏式跳转(浏览器URL跳转后保持不变)
Apr 07 Servers
Mac电脑OS系统下安装Nginx的详细教程
Apr 14 Servers
Windows Server 2019 配置远程控制以及管理方法
Apr 28 Servers
Apache Kafka 分区重分配的实现原理解析
Jul 15 Servers
windows server2016安装oracle 11g的图文教程
Jul 15 Servers
Centos7 Shell编程之正则表达式、文本处理工具详解
Aug 05 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
全国FM电台频率大全 - 24 贵州省
2020/03/11 无线电
PHP获取当前文件所在目录 getcwd()函数
2009/05/13 PHP
PHP 第二节 数据类型之数组
2012/04/28 PHP
几个有用的php字符串过滤,转换函数代码
2012/05/01 PHP
ThinkPHP实例化模型的四种方法概述
2014/08/22 PHP
php将图片保存为不同尺寸图片的图片类实例
2015/03/30 PHP
PHP使用redis实现统计缓存mysql压力的方法
2015/11/14 PHP
PHP children()函数讲解
2019/02/03 PHP
浅谈PHP中的Trait使用方法
2019/03/22 PHP
JavaScript 语法集锦 脚本之家基础推荐
2009/11/15 Javascript
web css实现整站样式互相切换
2013/10/29 Javascript
js获取客户端外网ip的简单实例
2013/11/21 Javascript
jquery使用hide方法隐藏指定id的元素
2015/03/30 Javascript
jQuery实现淡入淡出二级下拉导航菜单的方法
2015/08/28 Javascript
前端自动化开发之Node.js的环境搭建教程
2017/04/01 Javascript
详解HTTPS 的原理和 NodeJS 的实现
2017/07/04 NodeJs
详解解决使用axios发送json后台接收不到的问题
2018/06/27 Javascript
关于layui的动态图标不显示的解决方法
2019/09/04 Javascript
uni-app从安装到卸载的入门教程
2020/05/15 Javascript
vue实现公告栏文字上下滚动效果的示例代码
2020/06/16 Javascript
node.js如何根据URL返回指定的图片详解
2020/10/21 Javascript
原生js实现自定义消息提示框
2020/11/19 Javascript
[42:35]2018DOTA2亚洲邀请赛3月30日 小组赛A组 VG VS OpTic
2018/03/31 DOTA
[01:25:33]完美世界DOTA2联赛PWL S3 INK ICE vs Magma 第二场 12.20
2020/12/23 DOTA
python传到前端的数据,双引号被转义的问题
2020/04/03 Python
哪些是python中web开发框架
2020/06/17 Python
瑞典廉价机票预订网站:Seat24
2018/06/19 全球购物
新西兰优惠网站:Treat Me
2019/07/04 全球购物
建筑管理专业求职信
2014/07/28 职场文书
中学生爱国演讲稿
2014/09/05 职场文书
个人总结与自我评价
2014/09/18 职场文书
领导班子四风问题对照检查材料
2014/09/27 职场文书
小学教师师德师风自我剖析材料
2014/09/29 职场文书
2015年酒店服务员工作总结
2015/05/18 职场文书
nginx限制并发连接请求数的方法
2021/04/01 Servers
日元符号 ¥
2022/02/17 杂记