mac下安装nginx 启动和 关闭重启

Mac下使用Homebrew安装Nginx
本文详细介绍了如何在Mac系统上使用Homebrew工具安装Nginx,并解决了安装后无法显示欢迎页面的问题,包括配置文件解析及手动创建首页索引。

前言:nginx的强大不必多言,所以很自然很应当的我也来玩一玩。但是网上许多安装和配置都太那啥了,在这里真的想说一句带有引战性质但我真的无意引战的言论:现在的好多程序员的文笔实在是烂,写的教程让人着实难懂啊,该不会语文都是体育老师教的吧。

当前系统环境:

安装工具:

homebrew(还没用过的小伙伴可以点链接进行了解或者自行百度)

步骤:

  1、打开终端,习惯性命令:

brew update
//结果:Already up-to-date.

 

  2、终端继续执行命令:

brew search nginx   //查询要安装的软件是否存在

  3、这里我们多执行一步“废”命令,不过有利于我们后面的配置:

brew info nginx

  运行结果:

  

  我们可以看到,nginx在本地还未安装(Not installed),nginx的来源(From),Docroot默认为/usr/local/var/www,在/usr/local/etc/nginx/nginx.conf配置文件中默认端口被配置为8080从而使nginx运行时不需要加sudo,nginx将在/usr/local/etc/nginx/servers/目录中加载所有文件,以及我们可以通过最简单的命令 ‘nginx’ 来启动nginx。

  4、正式开始安装:

brew install nginx

  5、查看nginx安装目录(是否如info所说): 

open /usr/local/etc/nginx/

    

  成功打开nginx目录,也可以看到如info所说servers目录以及nginx.conf的配置文件(后面会用到这个配置文件)。但我们并没有找到nginx被安装到了哪里。

  终端继续执行:

open /usr/local/Cellar/nginx  //其实这个才是nginx被安装到的目录

  

  会看到一个以当前安装的nginx的版本号为名称的文件夹,这个就是我们安装的nginx根目录啦。进入1.12.2_1/bin 目录,会看到nginx的可执行启动文件。

  同样的,我们在1.12.2_1/目录下还可以看到一个名字为html的快捷方式文件夹(暂且就这么叫吧),进入该目录我们会发现其实它指向的就是/usr/local/var/www目录,这个在上面我们查看的info信息中有提到(Dcroot)

   6、启动nginx,终端输入如下命令:(就在当前目录输入就可以)

nginx

  没有报错即为启动成功。
  7、访问验证:

    打开浏览器访问localhost:8080,这里跟网上的一些教程会有些不一样,正常情况下到这一步就会能看到nginx的欢迎界面啦,然而博主却遇到了坑爹的情况(如果你能正常看到nginx欢迎界面,可以直接跳过这一步了)

 

   想必这个错误大家都很熟悉了,我就不再多做解释,接下来直接说原因(该原因仅为猜测,因为无从验证):安装的nginx会默认在html(也就是/usr/local/var/www)目录下生成一个欢迎页面文件,而出现上面这种情况就是欢迎页面文件没有生成(至于为什么没有生成就不得而知了,一切都是猜测)。

  那在解决这个问题之前,我们先来了解一下nginx的配置文件吧(nginx.conf):

cat /usr/local/etc/nginx/nginx.conf

  显示配置文件的代码为:

复制代码

#user  nobody;
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 {
     #侦听8080端口
        listen       8080;
     #定义使用 localhost访问
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
       #定义服务器的默认网站根目录位置
            root   html;
        #定义首页索引文件的名称
            index  index.html index.htm;
        }
     ...
     ...
     ... (注释代码太多,就不全部贴出来了)

    include servers/*;
}

复制代码

  通过配置文件我们可以看到其默认的网站根目录为html(即/usr/local/var/www),而默认的索引文件为index.html 和 index.htm,这下就找到原因了,原来我们的根目录少了首页索引文件,那就来手动创建一个吧:

cd /usr/local/var/www/                      //进入到www目录下
touch index.html                            //创建一个新的index.html文件
vim index.html                              //编辑该文件 

  将如下代码写入index.html文件中:

复制代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>title</title>
</head>
<body>
    <div>
        <h1>我的nginx欢迎页面</h1>
    </div>
</body>
</html>

复制代码

  按esc键,输入:wq推出编辑并保存(这个相信大家都会,但还是强迫症的写上了)。

  回到浏览器(localhost:8080)刷新:

  OK,大功告成啦!

 

 

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

?

1

2

3

501 15800   1  0 12:17上午 ??     0:00.00 nginx: master process /usr/local/Cellar/nginx/1.8.0/bin/nginx -c /usr/local/etc/nginx/nginx.conf

501 15801 15800  0 12:17上午 ??     0:00.00 nginx: worker process

501 15848 15716  0 12:21上午 ttys000  0:00.00 grep nginx

在终端中输入以下几种命令都可以停止

?

1

2

3

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

Kill -TERM 15800 (立刻停止)

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

四、重启

如果配置文件错误,则将启动失败,所以在启动nginx之前,需要先验证在配置文件的正确性,如下表示配置文件正确

?

1

2

3

promote:bin yangqianhua$ /usr/local/Cellar/nginx/1.8.0/bin/nginx -t -c /usr/local/etc/nginx/nginx.conf

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

重启有两种方法

1)在终端输入输入如下命令即可重启

?

1

2

3

promote:~ yangqianhua$ cd /usr/local/Cellar/nginx/1.8.0/bin/

promote:bin yangqianhua$ ./nginx -s reload

promote:bin yangqianhua$

2)根据进程号重启,执行命令 kill -HUP 进程号 

 

 

<think>首先,用户的问题是:“我想查找在Mac系统下查看Nginx是否启动的方法 请问在Mac系统下查看Nginx是否启动的方法”。这是一个明确的问题。 用户提供了站内引用:[1], [2], [3], [4]。这些引用是关于在MacCentOS上安装、配置运行Nginx的信息。我需要参考这些来构建回答。 回顾引用内容: - 引用[1]:提到在Mac安装Nginx的命令,如`brew install nginx`,查看版本`nginx -v`,以及配置文件位置。命令部分包括启动、停止等:`nginx`, `nginx -s stop`, `nginx -s quit`, `nginx -s reload`, `ps aux|grep nginx`。 - 引用[2]:类似信息,包括查看版本`nginx -v`,重启`sudo brew services restart nginx`,关闭`sudo brew services stop nginx`。 - 引用[3]:关于Linux(CentOS)上安装Nginx查看进程的方法:`ps -ef|grep nginx`。 - 引用[4]:讨论MacNginx基本使用命令一些目录信息。 用户的具体问题是关于在Mac系统下查看Nginx是否启动的方法。这意味着我需要从这些引用中提取相关的命令。 关键点: - 在Mac上,使用`ps aux|grep nginx`来查看Nginx进程(从引用[1]引用[3])。 - 引用[1]明确说:"ps aux|grep nginx 查看nginx进程"。 - 类似地,引用[3]在CentOS上使用`ps -ef|grep nginx`,但用户的需求是Mac。 - 其他命令如`nginx -v`只是查看版本,并不直接表示进程是否运行。 系统级指令: - 所有行内数学表达式用$...$(但这里不需要数学)。 - 独立公式用$$...$$(不适用)。 - LaTeX语法正确(不适用)。 - 使用中文回答。 - 生成相关问题:在回答结束后生成相关问题。 - 引用标识:在引用的段落末尾添加引用标识,例如[^1]。 回答结构: - 结构清晰,逐步解决问题。 - 帮助用户逐步操作。 最终回答需要用中文。 步骤: 1. **确认方法**:在Mac上查看Nginx是否启动的最直接方法是使用`ps aux | grep nginx`命令。这会显示Nginx进程。 2. **解释命令**:解释这个命令的工作原理:`ps aux`列出所有进程,`grep nginx`过滤出包含"nginx"的行。 3. **其他方法**:如果Nginx是通过Homebrew安装的,可以使用`brew services list`来查看服务状态(虽然引用中没有提到,但常见做法)。引用中提到了`sudo brew services restart nginx`等,所以可以用`brew services list`来检查状态。 - 例如,`brew services list | grep nginx`会显示nginx的状态。 4. **输出解释**:如果Nginx在运行,输出中会有类似"nginx running"或进程ID的信息。 5. **引用来源**:在适当的地方添加引用标识。 基于引用: - 引用[1]说:"ps aux|grep nginx 查看nginx进程" [^1]。 - 引用[2]提到命令但没有直接相关。 - 引用[3]在CentOS上使用`ps -ef|grep nginx`,类似但语法不同(ps aux vs ps -ef)。 在Mac上,`ps aux`是常用的。 回答结构: - 步骤1:解释查看进程的方法。 - 步骤2:提供命令示例。 - 步骤3:解释如何解读输出。 - 如果适用,添加其他方法如检查主页或访问服务器。 为了完整: - Nginx启动后,可以访问http://localhost:80来查看默认页面,但命令方法更直接。 在回答中: - 先直接回答方法。 - 然后逐步指导。 最终,生成相关问题。 生成的相关问题应该基于主题,比如Nginx的管理或其他相关命令。 相关问题示例: 1. 如何在Mac启动Nginx? 2. 如何配置Nginx的监听端口? 3. Nginx的安全退出方法是什么? 确保回答真实可靠。 </think>### 在Mac系统下查看Nginx是否启动的方法 在Mac系统上查看Nginx是否启动,最直接且可靠的方法是检查Nginx的进程是否在运行。以下是逐步操作方法,基于您提供的引用信息常见实践: #### 步骤1: 使用`ps`命令查看Nginx进程 - **命令**: `ps aux | grep nginx` - **解释**: - `ps aux`列出所有正在运行的进程。 - `grep nginx`过滤出包含"nginx"关键字的行,从而识别Nginx进程。 - **操作示例**: 1. 打开Mac的终端(Terminal)。 2. 输入命令:`ps aux | grep nginx` 3. 查看输出: - 如果Nginx正在运行,输出会显示类似以下内容: ``` root 1234 0.0 0.1 123456 7890 ?? Ss 10:00AM 0:00.01 nginx: master process nginx nobody 5678 0.0 0.0 123456 1234 ?? S 10:00AM 0:00.00 nginx: worker process username 9012 0.0 0.0 123456 123 s000 R+ 10:01AM 0:00.00 grep nginx ``` - 这里,`nginx: master process``nginx: worker process`表示Nginx的主进程工作进程都在运行。 - 如果Nginx未运行,输出可能只显示`grep nginx`行或为空。 - **引用来源**: 此方法在引用[1]引用[3]中提到,虽然引用[3]针对CentOS系统,但`ps aux|grep nginx`命令在Mac上同样适用(Mac使用BSD语法,`ps aux`是标准命令)[^1][^3]。 #### 步骤2: 使用`brew services`命令检查服务状态(如果通过Homebrew安装) - **前提**: 如果Nginx是通过Homebrew安装的(如引用[1][2]所述),可以使用Homebrew的服务管理工具。 - **命令**: `brew services list` - **解释**: - 此命令列出所有由Homebrew管理的服务及其状态。 - **操作示例**: 1. 在终端输入:`brew services list` 2. 查看输出: - 如果Nginx正在运行,输出会显示类似: ``` nginx started username /Users/username/Library/LaunchAgents/homebrew.mxcl.nginx.plist ``` - "started"状态表示Nginx启动。 - 如果未运行,状态会显示"stopped"。 - **引用来源**: 引用[2]提到了重启停止Nginx的命令(如`sudo brew services restart nginx`),因此`brew services list`是检查状态的配套方法[^2]。 #### 步骤3: 验证端口访问(辅助方法) - **命令**: `curl -I http://localhost` - **解释**: - Nginx默认监听80端口,访问本地服务器可以间接验证是否运行。 - **操作示例**: 1. 输入命令:`curl -I http://localhost` 2. 查看输出: - 如果Nginx运行,会返回HTTP响应头,如`HTTP/1.1 200 OK`。 - 如果未运行,会显示连接错误(如`curl: (7) Failed to connect to localhost port 80`)。 - 此方法适合快速验证,但不如进程检查可靠(因为端口可能被其他应用占用)。 #### 常见问题解决 - **如果命令无输出**: - Nginx可能未启动。可使用`nginx`命令启动(如引用[1]所述)[^1]。 - **权限问题**: 如果提示权限不足,需添加`sudo`前缀(如`sudo ps aux | grep nginx`),但通常不需要。 - **Mac系统兼容性**: 以上方法在macOS Ventura/Sonoma等版本测试有效。 通过以上步骤,您可以快速确认Nginx的状态。如果进程或服务状态显示为运行中,说明Nginx启动成功。 ### 相关问题 1. 如何在Mac系统上启动或停止Nginx服务? 2. Nginx配置文件的位置在哪里?如何进行修改? 3. Nginx启动失败时,有哪些常见解决方法? [^1]: 引用[1]: MacNginx部署、配置,包括进程查看命令配置文件位置。 [^2]: 引用[2]: Macnginx安装启动、简单命令,如服务重启停止。 [^3]: 引用[3]: Centos下安装Nginx加调试方法+开机启动,提供进程查看方法(类似Mac语法)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值