nginx 配置分享

今天来做一下 nginx 的分享


准备工作

首先是编译需要的一些东西

gcc-c++

libtool

gzip 模块需要 zlib 库

rewrite 模块需要 pcre 库

ssl 功能需要 openssl 库


安装依赖

直接用 yum 安装就行了,不用自己编译,节省很多时间

下面依赖,根据实际情况自己安装需要的

yum -y install gcc gcc-c++ make libtool zlib zlib-devel openssl openssl-devel pcre pcre-devel

编译安装

然后编译安装

./configure --prefix=/usr/local/nginx \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-http_gzip_static_module \
--with-http_realip_module \

make
make install

权限不够的话自己想办法。。sudo 一下


常用编译选项

--prefix=PATH: 指定nginx的安装目录。默认 /usr/local/nginx

--conf-path=PATH: 设置nginx.conf配置文件的路径。nginx允许使用不同的配置文件启动,通过命令行中的-c选项。默认为prefix/conf/nginx.conf

--user=name: 设置nginx工作进程的用户。安装完成后,可以随时在nginx.conf配置文件更改user指令。默认的用户名是nobody。--group=name类似

--with-http_ssl_module: 使用https协议模块。默认情况下,该模块没有被构建。前提是openssl与openssl-devel已安装

--with-http_stub_status_module: 用来监控 Nginx 的当前状态

--with-http_gzip_static_module: 是针对 nginx serve 的静态文件,需要编译进去才能有

--with-http_realip_module: 通过这个模块允许我们改变客户端请求头中客户端IP地址值(例如X-Real-IP 或 X-Forwarded-For),意义在于能够使得后台服务器记录原始客户端的IP地址

--with-pcre: 设置PCRE库的源码路径,如果已通过yum方式安装,使用--with-pcre自动找到库文件。使用--with-pcre=PATH时,需要从PCRE网站下载pcre库的源码(版本4.4 - 8.30)并解压,剩下的就交给Nginx的./configure和make来完成。perl正则表达式使用在location指令和 ngx_http_rewrite_module模块中。

--with-zlib=PATH: 指定 zlib(版本1.1.3 - 1.2.5)的源码解压目录。在默认就启用的网络传输压缩模块ngx_http_gzip_module时需要使用zlib 。

--add-module=PATH: 添加第三方外部模块,如nginx-sticky-module-ng或缓存模块。每次添加新的模块都要重新编译(Tengine可以在新加入module时无需重新编译)


常用操作

启动关闭 nginx 等常用操作

# 检查配置文件是否正确
/usr/local/nginx/sbin/nginx -t

# 查看编译选项
/usr/local/nginx/sbin/nginx -V

# 启动
/usr/local/nginx/sbin/nginx  # 默认配置文件 conf/nginx.conf,-c 指定

#关闭
/usr/local/nginx/sbin/nginx -s stop
# or
pkill nginx

# 重启,不会改变启动时指定的配置文件
/usr/local/nginx/sbin/nginx -s reload
# 或者
kill -HUP `cat /usr/local/nginx-1.6/logs/nginx.pid`

# 也可以将 nginx 作为系统服务管理,下载 nginx 到/etc/init.d/,修改路径和可执行权限

# service nginx {start|stop|status|restart|reload|configtest}

解析 php

需要 php-fpm 的支持

直接使用自带的 php-fpm

如果没有,那重新编译 PHP,在原有的编译信息后加上 --enable-fpm

查看原本的编译信息

php -i | grep Configure

加上 --enable-fpm 选项进行重新编译


配置 php-fpm

    #复制一份配置文件
    sudo cp /usr/local/php7/etc/php-fpm.conf.default.conf  php-fpm.conf

    #复制一份用户配置文件,用户名是配置 php 时指定的
    sudo cp /usr/local/php7/etc/php-fpm.d/www.conf.default www.conf

    #启动 php-fpm,mac 必须要以 root 用户启动,-R 参数表示 --allow-to-run-as-root
    sudo /usr/local/php7/sbin/php-fpm -R

    #查看一下php-fpm是否启动成功
    ps aux | grep php-fpm

    # php-fpm 的默认端口号是 9000
    netstat -ant | grep 90000

nginx 整合 php-fpm

location ~ \.php$ {
    root           /data/home/arnoliu/www/developers.e.qq.com/web;
    fastcgi_pass   127.0.0.1:9001;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  /data/home/arnoliu/www/developers.e.qq.com/web$fastcgi_script_name;
    include        fastcgi_params;
}

nginx 配置

nginx.conf 配置文件

nginx 配置文件主要分成四部分:

  • main:(全局设置)其他部分的会继承自 main
  • server:(主机设置)主要用于指定虚拟主机域名、IP 和端口
  • location:(URL 路由)用于匹配路由信息
  • upstream:(主要为反向代理、负载均衡相关配置)upstream 主要用于设置一系列的后端服务器,设置反向代理及后端服务器的负载均衡

server 继承 main,location 继承 server

upstream 既不会继承指令也不会被继承,它有自己的特殊指令


我的配置

worker_processes  8;

events {
    worker_connections  1024;
}

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

    access_log  logs/access.log;

    sendfile        on;
    keepalive_timeout  60;

    tcp_nopush on;
    tcp_nodelay on;

    fastcgi_connect_timeout 300;
    fastcgi_send_timeout 300;
    fastcgi_read_timeout 300;
    fastcgi_buffer_size 64k;
    fastcgi_buffers 4 64k;
    fastcgi_busy_buffers_size 128k;
    fastcgi_temp_file_write_size 128k;

    gzip on;
    gzip_min_length 1k;
    gzip_buffers 4 16k;
    gzip_http_version 1.0;
    gzip_comp_level 2;
    gzip_types text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml;
    gzip_vary on;

    server {
        listen       80;
        server_name  example.qq.com;

        root /data/home/arnoliu/www/example/web;
        charset utf-8;

        location / {
            root /data/home/arnoliu/www/example/web;
            index index.php index.html index.htm;
        }

        location ~ \.php$ {
            root          /data/home/arnoliu/www/example/web;
            fastcgi_pass  127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME  /data/home/arnoliu/www/example/web$fastcgi_script_name;
            include       fastcgi_params;
        }
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,393评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,790评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,391评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,703评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,613评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,003评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,507评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,158评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,300评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,256评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,274评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,984评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,569评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,662评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,899评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,268评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,840评论 2 339

推荐阅读更多精彩内容