Nginx安装与配置

知识点:

1、nginx需要linux2.6及以上内核支持(uname -a查看linux内核版本)

2、pcre包,用于nginx rewrite重写功能。

3、其实安装mysql最耗时间且最耗内存。有可能安装mysql需要30min左右。

4、一旦nginx配置上虚拟主机,一般就不能用ip来访问web服务了,而要用每个虚拟主机网站的的相应域名来访问。常用虚拟主机模式:通过linux服务器的同一个ip同一个端口,用不同的域名去访问不同的网站,而用域名访问web服务器,就又涉及到dns,或者配置本机(非web服务器)/etc/hots文件帮你解析域名。

在我的mac上:vim /etc/hosts

192.168.1.10 www.baidu.com

192.168.1.10 www.sina.com

5、--with-http_stub_status_module,编译安装nginx时的这个选项用于开启nginx自身监控,需要在nginx配置文件里配置,下面仅配置打开了www.baidu.com这个虚拟主机的自身监控,然后在浏览器里输入www.baidu.com/status

6、nginx配置文件里常用到nginx变量,我们可以配置nginx日志,比如想知道$request_filename是啥,就把nginx日志那里就配置仅打印我们想知道的变量。

7、304状态码:说明是缓存返回给用户结果。

解压编译安装pcre,供nginx安装时使用

tar xf pcre..tar.gz

cd pcre.../

./configure && make && make install

一、编译安装nginx

tar xf nginx-...tar.gz

cd nginx..../

./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module && make && make install

(安装完后会在/usr/local/nginx/下自动产生4个目录:conf html logs sbin

html目录是nginx本身默认的网页文件存放路径,但生产环境,比如nginx配置php服务的虚拟主机后,用的都是php服务的web页面所在路径,比如/usr/local/php/web/index.php)

二、修改nginx配置文件,配置虚拟主机

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

http{

全局配置。。。。。

server{

listen 80;

server_name www.baidu.com

access_log logs/baidu.access.log main;

location / {

if ($request_filename ~ "index.html") {       --请求文件如果匹配index.html就重定向到test.html

rewrite .* /test.html;

}

root /usr/local/php/web/baidu;

index index.html;

}

location /status {----打开nginx自身监控

stub_status on;

}

}

server{

server_name www.sina.com

access_log logs/sina.access.log main;

location / {

autoindex on; ----打开列表页显示,即如果根目录/usr/local/php/web/sina下没有index.html文件,就列出根目录的文件列表,即根目录下所有的文件名列表。一般用于测试或者用于下载页。

root /usr/local/php/web/sina;

index index.html;

}

}

}

三、启动nginx(启动nginx后会在nginx安装目录下多出几个目录,----安装nginx时只有conf、html、logs、sbin4个目录)

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

重启nginx:

1、pkill nginx

2、/usr/local/nginx/sbin/nginx

重新加载服务:常用reload重加载,因为重启nginx会造成已有用户断连。

pkill -HUP nginx   --给nginx传递HUP信号,把配置文件中新修改的东西加载到正在运行的nginx的进程中,但nginx进程不会关闭,保证nginx持续为用户提供服务。

四、nginx日志切割:

每天凌晨0点切割,但是当改变日志名字后,nginx不会自动生成新的baidu.access.log,那nginx服务生成的新日志就没地方打印了,又不能重启ningx服务,这时候可以用老办法,通过HUP平滑重启,也会生成新的日志文件,但是还有更好的办法,即ningx提供了一个专用来生成新日志的信号:pkill -USR1 nginx

这样消耗的系统资源也最小。

1、可以写个脚本:比如脚本里写mv日志文件到新目录,然后pkill -USR1 nginx

2、通过logrotate结合corn轮询日志(常用)

nginx日志轮询

cat /etc/logrotate.d/nginx                ----nginx的logrotate配置文件

/usr/local/nginx/logs/nginx/*.log

{

daily

rotate 30

missingok

compress

notifempty

dateext    ---以日期添加后缀

sharedscripts

postrotate

if [ -f /var/run/nginx.pid ]; then

kill -USR1 `cat /var/run/nginx.pid`

fi

endscript

}

配置日志轮询计划任务

00 00 * * * root /usr/sbin/logrotate -f /etc/logrotate.d/nginx    (-f指定轮询的配置文件)

五、nginx用于负载均衡+反向代理:--此时架构:浏览器---》nginx(代理层)---》后端nginx

配置nginx代理层:

cat /usr/local/nginx/conf/conf.d/upsteam.conf

upstream nginx_backend {

server 192.168.1.10:80 weight=1 max_fails=2 fail_timeout=30s;

server 192.168.1.20:80 weight=1 max_fails=2 fail_timeout=30s;

server 192.168.1.30:80 weight=1 max_fails=2 fail_timeout=30s;

}

cat /usr/local/nginx/conf/conf.d/baidu.http.conf

server {

listen       80;

server_name  www.baidu.com;

access_log   /usr/local/nginx/logs/www.baidu.com.http.log www;

error_log  /usr/local/nginx/logs/www.baidu.com.error.log error;

charset         utf-8;

--------------------------baidu.https.conf----------------------

listen       443;

ssl on;

server_name  www.baidu.com;

access_log   /usr/local/nginx/logs/www.baidu.com.https.log www;

error_log   /usr/local/nginx/logs/www.baidu.com.error.log crit;

charset         utf-8;

ssl_certificate /usr/local/nginx/conf/sslkey/new/inke.cn.cer;

ssl_certificate_key /usr/local/nginx/conf/sslkey/new/inke.cn.key;

ssl_session_timeout 5m;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

ssl_ciphers ALL:!ADH:!EXPORT56:-RC4+RSA:+HIGH:+MEDIUM:!EXP;

ssl_prefer_server_ciphers on;)))

--------------------------baidu.https.conf----------------------

# errors page

error_page 404 /404.html;

error_page 500 /50x.html;

# deny access hidden file like .git .svn

location = / {

deny all;

}

location /banner/index.php {

set $ip_limit_num "5";

set $ip_limit_interval "60";

access_by_lua_file lua/access_limit.lua;

return 403;

location /phpmyadmin {

return 403;

}

location / {

proxy_pass  http://nginx_backend;

proxy_ignore_client_abort on;

proxy_redirect     off;

proxy_set_header   Host             $host;

proxy_set_header   X-Real-IP        $remote_addr;

proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;

}

}

六、nginx rewrite

rewrite 指令末尾有4种flag标记

last:表示完成rewrite,浏览器地址栏url不变。

break:本条规则匹配完成,终止匹配,不再匹配后面的规则,浏览器地址栏url不变。

redirect:返回302临时重定向,浏览器地址栏会显示跳转后的url。

permanent:返回301永久重定向,浏览器地址栏会显示跳转后的url。

未完待续

时间: 2024-10-05 14:38:59

Nginx安装与配置的相关文章

LVS+Nginx(LVS + Keepalived + Nginx安装及配置)

(也可以每个nginx都挂在上所有的应用服务器) nginx大家都在用,估计也很熟悉了,在做负载均衡时很好用,安装简单.配置简单.相关材料也特别多. lvs是国内的章文嵩博士的大作,比nginx被广泛接受还要早7年,并且已经被红帽作为了系统内置软件,可谓很牛了.lvs相对于nginx来说配置上就要相对复杂一些. 但是,有时候我们会看到大牛们分享的经验里面是lvs+nginx作为负载均衡了,一直想不明白这是个什么道理. 为什么会出现两者被同时使用呢?其实,这要从两者的各自优势来说了. nginx用

ubuntu server nginx 安装与配置

一:关于nginx http://wiki.ubuntu.org.cn/Nginx http://nginx.org/cn http://wiki.nginx.org/NginxChs 二:ubuntu server 安装 如果你之前安装了 apache2服务,请先停止掉 sudo service apache2 stop sudo apt-get install nginx #安装 安装完成之后,打开  localhost测试 安装成功之后,默认会开启nginx服务,可自行关闭,启动,重启 s

阿里云服务器Linux CentOS安装配置(八)nginx安装、配置、域名绑定

阿里云服务器Linux CentOS安装配置(八)nginx安装.配置.域名绑定 1.安装nginx yum -y install nginx 2.启动nginx service nginx start 3.访问(nginx默认是80端口) curl 127.0.0.1 4.域名子绑定 编辑文件/etc/nginx/conf.d/default.conf,在底部加入下面代码,完成前几章所述4个端口的子域名绑定 server{ listen 80; server_name tomcat.bingz

centos7系统下nginx安装并配置开机自启动操作

准备工作 我的centos7系统是最小化安装的, 缺很多库, 首先安装必须的运行库 ? 1 2 3 4 5 6 7 8 9 10 11 yum install wget gcc gcc-c++ pcre-devel zlib-devel ##创建工作目录并进入工作目录 mkdir -p /z/nginx && cd /z/nginx ##获取nginx最新的安装包 wget http://nginx.org/download/nginx-1.11.10.tar.gz ##解压缩 tar z

从零开始搭建系统1.2——Nginx安装及配置

从零开始搭建系统1.2--Nginx安装及配置 原文地址:https://www.cnblogs.com/provence666/p/8638502.html

linux nginx安装以及配置

一.Nginx简介 Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器.Nginx是由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日.其将源代码以类BSD许可证的形式发布,因它的稳定性.丰富的功能集.示例配置文件和低系统资源的消耗而闻名.2011年6月1日,nginx 1.0.4发布. Nginx是一款轻量级的Web 服务器/反向代理服务器

windows下nginx安装、配置与使用

目前国内各大门户网站已经部署了Nginx,如新浪.网易.腾讯等:国内几个重要的视频分享网站也部署了Nginx,如六房间.酷6等.新近发现Nginx 技术在国内日趋火热,越来越多的网站开始部署Nginx. 相比apeach.iis,nginx以轻量级.高性能.稳定.配置简单.资源占用少等优势广受欢迎. 1)下载地址: http://nginx.org 2)启动 解压至c:\nginx,运行nginx.exe(即nginx -c conf\nginx.conf),默认使用80端口,日志见文件夹C:\

linux下nginx安装、配置实战

1什么是Nginx Nginx("enginex")是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器,在高连接并发的情况下Nginx是Apache服务器不错的替代品.其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好.目前中国大陆使用nginx网站用户有:新浪.网易.腾讯,另外知名的微网志Plurk也使用nginx. Nginx作为负载均衡服务器,既可以在内部直接支持Rails和PHP程序对外进行服务,也可

nginx安装及配置详解

Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器.Nginx是由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日.其将源代码以类BSD许可证的形式发布,因它的稳定性.丰富的功能集.示例配置文件和低系统资源的消耗而闻名.2011年6月1日,nginx 1.0.4发布. 依赖: yum groupinstall "Developmen

搭建高性能web服务器之Nginx安装与配置(2.3)

<上一章节介绍了如何获取Nginx以及如何配置.编译.安装运行Nginx.但是很多情况下我们是根据需要来编译Nginx,这里不得不说道nginx的./configure相关参数> 一 Nginx的./configure编译参数说明介绍 可以看出,configure命令至关重要,比如根据自己需要选择性的安装nginx是很有必要的,下文将详细介绍如何使用configure命令使用方法. 我们在解压了nginx的源码后,进入到nginx的源码目录使用"./configure --help&