nginx是使用比较广泛的linux的web服务,下面是一些简单的使用及配置
安装nginx后的配置文件/usr/local/nginx/conf/nginx.conf
结构:
… …
http{
… …
server{
… …
location{
……
}
}
}
1. 用户认证
# htpasswd /usr/local/nginx/pass scott //追加用户,不使用-c选项
server {
… …
auth_basic "Input Password:"; //认证提示符
auth_basic_user_file "/usr/local/nginx/pass"; //认证密码文件
location / {
… …
}
}
2. 基于域名的虚拟主机
server {
listen 80; //端口
server_name www.b.com; //域名
location / {
… …
}
}
3. 基于端口的虚拟主机
listen 80; //端口
4. 基于IP的虚拟主机
listen 192.168.4.254:80; //端口
5. 基于加密网站的虚拟主机(源码安装必须使用–with-http_ssl_module)
#生成私钥与证书
cd /usr/local/nginx/conf
openssl genrsa > cert.key //生成私钥
openssl refq -new -x509 -key cert.ket > cert.pem //生成证书
#修改配置文件
vim /usr/local/nginx/conf/nginx.conf //原文件被注释,取消注释即可
#server {
# listen 443 ssl;
# server_name localhost;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
6. 配置支持php动态页面
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000; //将请求转发给本机9000端口,PHP解释器
fastcgi_index index.php;
#fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi.conf; //模版错误,正确包含在fastcgi.conf
}
7. 地址重写
rewrite 旧地址 新地址 [选项]
last 不再读其他rewrite
break 不再读其他语句,结束请求
redirect 临时重定向
permanent 永久重定向
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
if ($http_user_agent ~* firefox) { //识别客户端firefox浏览器
rewrite ^(.*)$ /firefox/$1; //firefox浏览器用户访问firefox目录下内容
}
}
8. Nginx反向代理–集群
http {
.. ..
upstream webserver {
ip_hash;
server 192.168.2.100:80 weight=1 max_fails=2 fail_timeout=10;
server 192.168.2.200:80 weight=2 max_fails=2 fail_timeout=10;
}
.. ..
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://webserver;
}
}
//weight设置服务器权重值,默认值为1
//max_fails设置最大失败次数
//fail_timeout设置失败超时时间,单位为秒
// ip_hash 根据客户端ip分配固定的后端服务器
9. TCP/UDP调度器
–with-stream 开启ngx_stream_core_module模块
配置在http外
stream {
upstream backend {
server 192.168.2.100:22; //后端SSH服务器的IP和端口
server 192.168.2.200:22;
}
server {
listen 12345; //Nginx监听的端口
proxy_connect_timeout 1s;
proxy_timeout 3s;
proxy_pass backend;
}
}
Nginx优化
A.优化并发量
# ab -n 2000 -c 2000 http://192.168.4.5/ //模拟多并发
# vim /usr/local/nginx/conf/nginx.conf
.. ..
worker_processes 2; //与CPU核心数量一致
events {
worker_connections 65535; //每个worker最大并发连接数
use epoll;
}
.. ..
修改配置文件后仍然无法高并发需要修改linux内核参数
# ulimit -a //查看所有属性值
# ulimit -Hn 100000 //设置硬限制(临时规则)
# ulimit -Sn 100000 //设置软限制(临时规则)
# vim /etc/security/limits.conf //永久
.. ..
* soft nofile 100000
* hard nofile 100000
//该配置文件分4列,分别如下:
//用户或组 硬限制或软限制 需要限制的项目 限制的值
B. 解决客户端访问头部信息过长的问题
# vim /usr/local/nginx/conf/nginx.conf
.. ..
http {
client_header_buffer_size 1k; //默认请求包头信息的缓存
large_client_header_buffers 4 4k; //大请求包头部信息的缓存个数与容量
.. ..
}
C. 客户端浏览器缓存数据
Firefox地址栏内输入about:cache将显示Firefox浏览器的缓存信息
# vim /usr/local/nginx/conf/nginx.conf
server {
…
location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ { //浏览器缓存图片等信息
expires 30d; //定义客户端缓存时间为30天
}
….
}
D. 自定义报错页面
# vim /usr/local/nginx/conf/nginx.conf
.. ..
error_page 404 /40x.html; //自定义错误页面
.. ..
附常见http状态码
200 一切正常
301 永久重定向
302 临时重定向
401 用户名或密码错误
403 禁止访问(客户端ip地址被拒绝)
404 文件不存在
414 请求URL头部过长
500 服务器内部错误
502 Bad Gateway
E. 查看服务器状态信息
使用模块 –with-http_stub_status_module
# cat /usr/local/nginx/conf/nginx.conf
… …
location /status {
stub_status on;
}
… …
查看
#curl http://192.168.4.5/status
Active connections:当前活动的连接数量。
Accepts:已经接受客户端的连接总数量。
Handled:已经处理客户端的连接总数量(一般与accepts一致,除非服务器限制了连接数量)。
Requests:客户端发送的请求数量。
Reading:当前服务器正在读取客户端请求头的数量。
Writing:当前服务器正在写响应信息的数量。
Waiting:当前多少客户端在等待服务器的响应。
F. 开启gzip压缩功能,提高数据传输效率
# cat /usr/local/nginx/conf/nginx.conf
http {
.. ..
gzip on; //开启压缩
gzip_min_length 1000; //小文件不压缩
gzip_comp_level 4; //压缩比率
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; //对特定文件压缩,类型参考mime.types
.. ..
}
G. 服务器内存缓存
http {
open_file_cache max=2000 inactive=20s;
open_file_cache_valid 60s;
open_file_cache_min_uses 5;
open_file_cache_errors off;
//设置服务器最大缓存2000个文件句柄,关闭20秒内无请求的文件句柄
//文件句柄的有效时间是60秒,60秒后过期
//只有访问次数超过5次会被缓存
}
未经允许不得转载:天府数据港官方信息博客 » Nginx的简单配置
客官点个赞呗! (1)