nginx安装

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx安装相关的知识,希望对你有一定的参考价值。

安装步骤
下载源码包
技术分享图片
2
技术分享图片
解压包并编译
技术分享图片
make && make install
技术分享图片
查看目录
技术分享图片
conf 配置文件目录
技术分享图片
html 样例文件
技术分享图片
sbin 进程
技术分享图片
-t 查看配置文件是否出错
技术分享图片
编辑启动脚本
技术分享图片
文件内容下载地址
技术分享图片
更改权限 并添加服务
技术分享图片
编辑配置文件
vim nginx.conf
下载地址
技术分享图片
文件内容定义
user 定义启动nginx的用户
worker_processes 子进程数量
worker_rlimit_nofile 定义打开多少个文件
worker_connections 最大连接数
技术分享图片
fastcgi_pass IP:端口 监听 或者使用监听sock 文件
技术分享图片
检测配置文件 并启动服务 查看进程
技术分享图片
默认虚拟主机域
技术分享图片
编写测试文件1.php
技术分享图片
访问
技术分享图片
nginx 默认虚拟主机
技术分享图片
编辑配置文件加入一行
技术分享图片
创建目录vhost
技术分享图片
编辑文件 aaa.com.conf
技术分享图片
创建文件目录 并编辑文件index.html
技术分享图片
检测语法是否错误
技术分享图片
修改配置文件之后重新加载文件
技术分享图片
测试 默认虚拟主机
技术分享图片
nginx 用户认证 定义一个用户和密码文件
技术分享图片
创建一个虚拟主机在vhost 编辑文件test.conf.conf
技术分享图片
auth_basic 定义用户认证
auth_basic_user_file 密码文件
没有的话安装httpd软件包 使用htpasswd 命令
-c 生成这个文件 指定用户 aming
技术分享图片
cat 文件 如果生成第二个不需要加-c
技术分享图片
测试语法
技术分享图片
重新加载文件 好处是当配置文件有问题时 -s reload 的不会生效 restart 重启文件有错误会停掉服务
技术分享图片
访问 401需要指定用户
技术分享图片
curl -u 指定用户密码 报错404
技术分享图片
没有相应的目录和文件
技术分享图片
要访问一个目录下时才需要认证 指定特定的文件或者目录
技术分享图片
修改配置文件 location 定义需要用户认证的目录
技术分享图片
可以不加用户访问test.com
技术分享图片
不加 -u 用户 访问401
技术分享图片
创建目录并使用用户认证访问
技术分享图片
针对一个访问的url 修改配置文件匹配 ~ admin.php
技术分享图片技术分享图片
可以去掉用户直接访问admin
技术分享图片
当访问admin.php时 401报错
技术分享图片
nginx 域名重定向
技术分享图片
修改配置文件 test.com.conf
技术分享图片
^/(.) =https://$host/(.)$ https 可以省略掉
permanent 301 redirect 302
重新加载配置文件
技术分享图片
测试 test2 重定向到test.com
技术分享图片
test3 也算重定向到test
技术分享图片
test4 会访问默认的虚拟主机 aaa.conf
技术分享图片
配置文件详细介绍
#定义Nginx运行的用户和用户组
user www www;
#nginx进程数,建议设置为等于CPU总核心数。
worker_processes 8;
#全局错误日志定义类型,[ debug | info | notice | warn | error | crit ]
error_log /var/log/nginx/error.log info;
#进程文件
pid /var/run/nginx.pid;
#一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(系统的值ulimit -n)与nginx进程数相除,但是nginx分配请求并不均匀,所以建议与ulimit -n的值保持一致。
worker_rlimit_nofile 65535;
#工作模式与连接数上限
events
{
#参考事件模型,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]; epoll模型是Linux 2.6以上版本内核中的高性能网络I/O模型,如果跑在FreeBSD上面,就用kqueue模型。
use epoll;
#单个进程最大连接数(最大连接数=连接数*进程数)
worker_connections 65535;
}

#设定http服务器
http
{
include mime.types; #文件扩展名与文件类型映射表
default_type application/octet-stream; #默认文件类型
#charset utf-8; #默认编码
server_names_hash_bucket_size 128; #服务器名字的hash表大小
client_header_buffer_size 32k; #上传文件大小限制
large_client_header_buffers 4 64k; #设定请求缓
client_max_body_size 8m; #设定请求缓
sendfile on; #开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。
autoindex on; #开启目录列表访问,合适下载服务器,默认关闭。
tcp_nopush on; #防止网络阻塞
tcp_nodelay on; #防止网络阻塞
keepalive_timeout 120; #长连接超时时间,单位是秒
#FastCGI相关参数是为了改善网站的性能:减少资源占用,提高访问速度。下面参数看字面意思都能理解。
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模块设置
gzip on; #开启gzip压缩输出
gzip_min_length 1k; #最小压缩文件大小
gzip_buffers 4 16k; #压缩缓冲区
gzip_http_version 1.0; #压缩版本(默认1.1,前端如果是squid2.5请使用1.0)
gzip_comp_level 2; #压缩等级
gzip_types text/plain application/x-javascript text/css application/xml;
#压缩类型,默认就已经包含text/html,所以下面就不用再写了,写上去也不会有问题,但是会有一个warn。
gzip_vary on;
#limit_zone crawler $binary_remote_addr 10m; #开启限制IP连接数的时候需要使用
upstream blog.ha97.com {
#upstream的负载均衡,weight是权重,可以根据机器配置定义权重。weigth参数表示权值,权值越高被分配到的几率越大。
server 192.168.80.121:80 weight=3;
server 192.168.80.122:80 weight=2;
server 192.168.80.123:80 weight=3;
}
#虚拟主机的配置
server
{
#监听端口
listen 80;
#域名可以有多个,用空格隔开
server_name www.ha97.com ha97.com;
index index.html index.htm index.php;
root /data/www/ha97;
location ~ ..(php|php5)?$
{
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
#图片缓存时间设置
location ~ .
.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 10d;
}
#JS和CSS缓存时间设置
location ~ ..(js|css)?$
{
expires 1h;
}
#日志格式设定
log_format access ‘$remote_addr - $remote_user [$time_local] "$request" ‘
‘$status $body_bytes_sent "$http_referer" ‘
‘"$http_user_agent" $http_x_forwarded_for‘;
#定义本虚拟主机的访问日志
access_log /var/log/nginx/ha97access.log access;
#对 "/" 启用反向代理
location / {
proxy_pass http://127.0.0.1:88;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
#后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#以下是一些反向代理的配置,可选。
proxy_set_header Host $host;
client_max_body_size 10m; #允许客户端请求的最大单文件字节数
client_body_buffer_size 128k; #缓冲区代理缓冲用户端请求的最大字节数,
proxy_connect_timeout 90; #nginx跟后端服务器连接超时时间(代理连接超时)
proxy_send_timeout 90; #后端服务器数据回传时间(代理发送超时)
proxy_read_timeout 90; #连接成功后,后端服务器响应时间(代理接收超时)
proxy_buffer_size 4k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小
proxy_buffers 4 32k; #proxy_buffers缓冲区,网页平均在32k以下的设置
proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers
2)
proxy_temp_file_write_size 64k;
#设定缓存文件夹大小,大于这个值,将从upstream服务器传
}
#设定查看Nginx状态的地址
location /NginxStatus {
stub_status on;
access_log on;
auth_basic "NginxStatus";
auth_basic_user_file conf/htpasswd;
#htpasswd文件的内容可以用apache提供的htpasswd工具来产生。
}
#本地动静分离反向代理配置
#所有jsp的页面均交由tomcat或resin处理
location ~ .(jsp|jspx|do)?$ {
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_pass http://127.0.0.1:8080;
}
#所有静态文件由nginx直接读取不经过tomcat或resin
location ~ ..(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$
{ expires 15d; }
location ~ .
.(js|css)?$
{ expires 1h; }
}
}

以上是关于nginx安装的主要内容,如果未能解决你的问题,请参考以下文章

如何使用yum安装nginx

想安装nginx,应该怎么做

nginx 编译安装详解

win7 怎样安装nginx?

windows下nginx安装配置后怎么使用

nginx安装和常见的配置