Nginx配置小记

栏目: 服务器 · Nginx · 发布时间: 6年前

内容简介:Nginx配置小记

背景

之前一直使用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

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

# 针对静态资源私服
127.0.0.1 resource.com
# 针对反向代理
127.0.0.1 app.com

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

测试

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

<?php phpinfo(); ?>

启动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)未启用目录浏览功能, 在指定 serverlocation 节点启用目录浏览功能,如下,

autoindex on;
autoindex_exact_size 
autoindex_localtime on;

参考资料

Setting up Nginx on Your Local System

Nginx文档

Mac OSX 10.9搭建nginx+mysql+php-fpm环境


以上所述就是小编给大家介绍的《Nginx配置小记》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Python for Everyone

Python for Everyone

Cay S. Horstmann、Rance D. Necaise / John Wiley & Sons / 2013-4-26 / GBP 181.99

Cay Horstmann's" Python for Everyone "provides readers with step-by-step guidance, a feature that is immensely helpful for building confidence and providing an outline for the task at hand. "Problem S......一起来看看 《Python for Everyone》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换