Nginx 学习笔记一

Nginx 是一个高性能的 HTTP 和 反向代理 服务器

安装nginx

Nginx依赖

安装 pcre,支持 rewrite

yum install pcre*

安装 openssl,需要 ssl 的支持

 yum install openssl*

安装

    # ./configure --prefix=/usr/local/nginx \    
    --with-http_ssl_module   \    
    --with-http_stub_status_module 
    --with-pcre
    #–with-http_stub_status_module:支持 nginx 状态查询
    #–with-http_ssl_module:支持 https
    #–with-pcre:为了支持 rewrite 重写功能,必须制定 pcre
    
    make && make install

启动 关闭 nginx

启动  /usr/local/nginx/sbin/nginx

关闭   /usr/local/nginx/sbin/nginx -s stop

或者

添加启动脚本

#!/bin/sh 
# 
# nginx - this script starts and stops the nginx daemin 
# 
# chkconfig: - 85 15 
# description: Nginx is an HTTP(S) server, HTTP(S) reverse \ 
# proxy and IMAP/POP3 proxy server 
# processname: nginx 
# config: /usr/local/nginx/conf/nginx.conf 
# pidfile: /usr/local/nginx/logs/nginx.pid 

# Source function library. 
. /etc/rc.d/init.d/functions 

# Source networking configuration. 
. /etc/sysconfig/network 

# Check that networking is up. 
[ "$NETWORKING" = "no" ] && exit 0 

nginx="/usr/local/nginx/sbin/nginx" 
prog=$(basename $nginx) 

NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf" 

lockfile=/var/lock/subsys/nginx 

start() { 
[ -x $nginx ] || exit 5 
[ -f $NGINX_CONF_FILE ] || exit 6 
echo -n $"Starting $prog: " 
daemon $nginx -c $NGINX_CONF_FILE 
retval=$? 
echo 
[ $retval -eq 0 ] && touch $lockfile 
return $retval 
} 

stop() { 
echo -n $"Stopping $prog: " 
killproc $prog -QUIT 
retval=$? 
echo 
[ $retval -eq 0 ] && rm -f $lockfile 
return $retval 
} 

restart() { 
configtest || return $? 
stop 
start 
} 

reload() { 
configtest || return $? 
echo -n $"Reloading $prog: " 
killproc $nginx -HUP 
RETVAL=$? 
echo 
} 

force_reload() { 
restart 
} 

configtest() { 
$nginx -t -c $NGINX_CONF_FILE 
} 

rh_status() { 
status $prog 
} 

rh_status_q() { 
rh_status >/dev/null 2>&1 
} 

case "$1" in 
start) 
rh_status_q && exit 0 
$1 

stop) 
rh_status_q || exit 0 
$1 

restart|configtest) 
$1 

reload) 
rh_status_q || exit 7 
$1 

force-reload) 
force_reload 

status) 
rh_status 

condrestart|try-restart) 
rh_status_q || exit 0 

*) 
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}" 
exit 2 
esac

nginx添加清缓存模块安装

tar xf ngx_cache_purge-2.3.tar.gz -C /usr/local/ngx_cache_purge
进入nginx源文件 重新配置
# ./configure --prefix=/usr/local/nginx \    
    --with-http_ssl_module   \    
    --with-http_stub_status_module 
    --with-pcre
    --add-module=/usr/local/ngx_cache_purge
make 不需要make install
复制obj目录下面的nginx二进制文件到/usr/local/nginx/sbin下
cp obj/nginx /usr/local/nginx/sbin

查看加载的模块 nginx -V

内核参数优化

vi sysctl.conf 增加以下配置
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 1800
net.ipv4.ip_conntrack_max = 16777216 # 如果使用默认参数,容易出现网络丢包
net.ipv4.netfilter.ip_conntrack_max = 16777216# 如果使用默认参数,容易出现网络丢包
net.ipv4.tcp_max_syn_backlog = 65536
net.core.netdev_max_backlog = 32768
net.core.somaxconn = 32768
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries =
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_mem = 94500000 915000000 927000000
net.ipv4.tcp_max_orphans = 3276800
net.ipv4.ip_local_port_range = 1024 65535
配置生效
# sysctl –p

简单站点配置

server {
        listen       80;
        # 在本机所有 ip 上监听 80
        server_name  www.jwh5566.com;#域名
        location / {
            index  index.html index.htm;# 索引文件
        }
        error_page   500 502 503 504  /50x.html;
        #定义错误页面,如果是 500 错误,则把站点根目录下的 50x.html 返回给用户
        location = /50x.html {
            root   /www/html/www.jwh5566.com;站点根目录
        }

测试

mkdir –p /www/html/www.jwh5566.com

echo “www.jwh5566.com” > /www/html/www.jwh5566.com/index.html

打开浏览器访问http://www.jwh5566.com即可!

时间: 2024-10-14 00:45:35

Nginx 学习笔记一的相关文章

nginx学习笔记之基于端口的虚拟主机基于主机名的虚拟主机root、alias、index配置

nginx学习笔记之基于端口的虚拟主机基于主机名的虚拟主机root.alias.index配置 实验环境: centos 测试节点IP:172.16.3.101 基于端口的虚拟主机: vim /etc/nginx/nginx.conf # 向里面的http {}里面加入如下内容   server { # server定义一个虚拟主机         listen 8080; # 监听本机所有IP端口8080         server_name www.test.com; # 虚拟主机名为:w

Nginx学习笔记——概要

下面是Nginx模块开发的基础知识,后续的Nginx源码学习分享将会不断推出. Nginx配置文件: Nginx模块构成--hello world为例 模块1 模块2 模块3 模块4 模块5 Nginx数据结构 Nginx基本数结构 Nginx高级数据结构

Nginx学习笔记15rewrite之(二)redirect临时重定向

redirect标志跟permanent标志的区别是:redirect使用HTTP 302临时重定向,permanent使用HTTP 301永久重定向.本文介绍redirect标志的临时重定向动作. Nginx配置: location ~ ^/app2/ { rewrite ^/app2/(.*)$  /app/$1  redirect; } 运行结果: curl -v   http://ng.coe2coe.me:8000/app2/ * Hostname was NOT found in D

Nginx学习笔记16rewrite之(三)break

break标志,对目标地址进行请求.break存在时,rewrite的情况比较复杂. Nginx匹配成功某个location中的这种类型的rewrite之后,将不再进行其它location的处理,即其它location即使可以匹配rewrite后的目录地址,也不会执行其中的proxy_pass等指令,而是把rewrite后的目标地址作为Nginx本地页面地址直接访问.当rewrite后产生的本地页面地址对应的物理页面存在时,将可以正常访问该页面,否则产生404错误. Nginx配置: locat

Nginx学习笔记14rewrite之(一)permanent永久重定向

Nginx的rewrite功能可以将对一个URL的请求,按照正则表达式的规则,重定向到另一个URL.为了对rewrite功能的permanent永久重定向进行更好的了解,本文使用curl来访问相关的页面. Syntax: rewrite regex replacement [flag]; Default: - Context: server, location, if rewrite  Nginx配置文件中用于配置URL rewrite指令. regex   待匹配的URL正则表达式. repl

Nginx学习笔记03虚拟机与代理

1.1. 虚拟机 使用Nginx的配置文件中的server结点,可以很方便的在一个nginx实例中支持多个虚拟机. 前提条件:主机有多个域名. 本次试验中用到的主机192.168.197.101有三个域名: ng.coe2coe.me 计划指向的网站目录为nginx目录下的html目录 ng101a.coe2coe.me 计划指向的网站目录为nginx目录下的host目录下的ng101a.coe2coe.me目录. 首页内容中含有主机名称ng101a.coe2coe.me. ng101b.coe

nginx学习笔记

Nginx概述 Nginx是一个高性能的http服务器和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器.Ngnix开源.免费.高性能.可靠,配置简单.资源消耗小.拥有丰富的扩展模块.不像传统的服务器,Nginx不依赖于线程去处理requests,而是使用更易于伸缩的事件驱动(异步的)体系结构.This architecture uses small, but more importantly, predictable amounts of memory under load.即使

Nginx学习笔记17rewrite之(四)last

1.1.1. last last标志跟break标志的作用差不多,区别在于break标志处理之后,通常将不再匹配其它的location,即能够匹配rewrite目标地址的location中的proxy_pass等不会执行:last标志则会继续对rewrite的目标地址进行其它location的匹配,并执行其中的proxy_pass等动作. Nginx配置文件: location / { root   html; index  index.html; } location ~  ^/hello/

Nginx学习笔记22TCP代理

Nginx有两种方式实现TCP代理功能: 一种是使用nginx_tcp_proxy_module模块,一般用于Nginx早期版本. 一种是使用ngx_stream_core_module模块,用于1.9及其以后版本. 本文介绍使用stream的方式来实现TCP代理. (1)重新编译Nginx 只有在configure时使用了--with-stream参数,编译出来的nginx程序才支持stream方式实现TCP代理. ./configure --prefix=/opt/nginx   --wit

Nginx学习笔记02Nginx启动运行与命令行

1.1. Nginx启动运行 Nginx的配置文件的一个简单的例子. conf目录下的nginx.cfg文件的内容如下: #worker进程个数. worker_processes  1; #事件模块. events { worker_connections  1024; } #http模块. http { include       mime.types; default_type  application/octet-stream; #在8000端口监听. server { listen