美文网首页
Mac下Nginx环境配置

Mac下Nginx环境配置

作者: 结构学AI | 来源:发表于2018-10-08 13:46 被阅读16次

    背景

    之前一直使用Apache做静态资源私服及反向代理, 配置稍显复杂, 今天使用nginx来替换Apache, 在此小记一下探索的过程及碰到的问题.

    安装

    本人使用Mac系统, 偷懒的使用了homebrew, 一键完成了安装. 对于其它OS使用解压zip的方式.

    下面从安装–>配置(静态资源私服 php 反向代理)–>问题展开吧

    安装Homebrew

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

    brew cleanup

    brew doctor

    安装Nginx

    安装 brew install nginx

    启动 sudo nginx

    停止 sudo nginx -s stop

    配置

    文件目录

    nginx安装文件目录

    /usr/local/Cellar/nginx

    nginx配置文件目录

    /usr/local/etc/nginx

    系统hosts位置

    /private/etc/hosts

    配置nginx

    使用多个配置来管理nginx下的多个websites

    cd /usr/local/etc/nginx

    mkdir conf.d

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

    在nginx.conf中进行修改, 大致配置可如下, 详细配置见官方文档

    user your_username staff;

    worker_processes 1;

    events {

    worker_connections 1024;

    }

    http {

    include mime.types;

    default_type application/octet-stream;

    sendfile on;

    keepalive_timeout 65;

    include conf.d/*.conf;

    }

    注意修改该配置中的your_username为你的Mac用户名.

    到此父级配置已配置完成, 接下来配置用户希望的功能, 例如静态资源私服或反向代理.

    配置自己的静态资源服务器(username.conf), 如下

    server {

    listen 80;

    server_name resource.com;

    charset utf-8,gbk;

    location / {

    root /Users/username/resource;

        #index  index.html index.htm;

        autoindex on;

        autoindex_exact_size on;

        autoindex_localtime on;

    }

    }

    配置反向代理, 如下

    server {

    listen 80;

    server_name app.com;

    # oauth2的资源服务器

    location / {

        proxy_set_header        Host $http_host;

        proxy_pass http://localhost:8080/resource-app/;

    }

    location /resource-app/ {

        proxy_set_header        Host $http_host;

        proxy_pass http://localhost:8080/resource-app/;

    }

    # oauth2的授权服务器   

    location /actor-app/ {

        proxy_set_header        Host $http_host;

        proxy_pass http://localhost:8082/actor-app/;

    }

    }

    配置Php

    安装php-fpm

    Mac OSX 10.9的系统自带了PHP、php-fpm,省去了安装php-fpm的麻烦。 这里需要简单地修改下php-fpm的配置,否则运行php-fpm会报错。

    sudo cp /private/etc/php-fpm.conf.default /private/etc/php-fpm.conf

    vim /private/etc/php-fpm.conf

    修改php-fpm.conf文件中的error_log项,默认该项被注释掉,这里需要去注释并且修改为error_log = /usr/local/var/log/php-fpm.log。如果不修改该值,运行php-fpm的时候会提示log文件输出路径不存在的错误。

    配置hosts

    vim /private/etc/hosts

    在末尾加入如下代码, 该域名是nginx中server指定的server_name

    针对静态资源私服

    127.0.0.1 resource.com

    针对反向代理

    127.0.0.1 app.com

    配置完毕, 在浏览器中键入http://resource.com/可以对指定目录的文件进行浏览,下载; 键入http://app.com/resource-app或http://app.com/actor-app可分别进入不同的应用.

    测试

    在root根目录中创建文件index.php, 内容如下,

    启动nginx

    sudo nginx

    重启nginx

    sudo nginx -s reload

    停止nginx

    sudo nginx -s stop

    启动php

    sudo php-fpm

    在浏览器中输入http://resource.com/index.php即可看到php的详细信息.

    问题

    1.键入http://resource.com/, 服务器返回403界面

    该问题是因为访问权限不够造成, 在nginx.conf首行配置即可,

    user your_username staff;

    2.目录未显示, 只显示index.html页面

    该问题是指定站点(website)未启用目录浏览功能, 在指定server的location节点启用目录浏览功能,如下,

    autoindex on;

    autoindex_exact_size

    autoindex_localtime on;

    相关文章

      网友评论

          本文标题:Mac下Nginx环境配置

          本文链接:https://www.haomeiwen.com/subject/vzjdaftx.html