首先是一些配置。
user www-data;
worker_processes 1;
#进程数,一般为CPU总核心数
#pid /var/run/nginx.pid;
#进程文件
pid /home/kdq/nginx/logs/nginx.pid ;
events {
use epoll;
#epoll是多路复用IO(I/O Multiplexing)中的一种方式,但是仅用于linux2.6以上内核,可以大大提高nginx的性能
worker_connections 1024;
# multi_accept on;
}
以上一般都不用自己配了。了解一下一些优化就可以了。
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
##
# Basic Settings
##
#aotoindex on; #
sendfile on;
tcp_nopush on;
#防止网络阻塞
tcp_nodelay on;
#防止网络阻塞
keepalive_timeout 65;
#长连接超时,单位秒
types_hash_max_size 2048;
# server_tokens off;
server_names_hash_bucket_size 64;
# server_name_in_redirect off ;
##
# Logging Settings
##
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
##
# Gzip Settings
##
gzip on;
gzip_disable "msie6";
## Basic reverse proxy server ##
server {
#监听端口8080
listen 8080;
server_name localhost;
location /{
proxy_pass http://202.204.102.161;
#现在OJ的内网地址
proxy_redirect default;
}
location /status {
stub_status on;
access_log on;
auth_basic "NginxStatus";
#allow 192.168.0.113 ;
auth_basic_user_file /etc/nginx/htpasswd ;#密码文件的路径
# 设置密码
#htpasswd文件的内容可以用apache提供的htpasswd工具来产生。
}
}
#server {
# listen 8087 ;
# server_name localhost;
# location / {
# root /home/kdq/mytask;
#
# }
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
上面的service主要实现了一个反向代理,通过访问本机的8080端口,可以访问内网的OJ。算是个小试验。。
主要说一下/status。
通过/status,我们可以查看nginx的状态。
主要说一下配置,allow ip,这是限制ip登录。
auth_basic_user_file /etc/nginx/htpasswd
这是通过用户名密码登录。
用户名密码就存在htpasswd这个文件里。
格式是user:passwd ,密码用crypt加密。
直接用命令mkpasswd+密码,得到的密码就是加密后的。
kdq@ubuntu:/etc/nginx$ sudo mkpasswd
密码:
OEThvZTvhXfvE
然后把这个密码复制到那个文件里,按照上述格式就可以了。
status:
Active connections: 1
server accepts handled requests
2 2 4
Reading: 0 Writing: 1 Waiting: 0
更多资料请参考:http://wiki.nginx.org/Main