nginx简介:
Nginx (“engine x”) 是一个开源的,支持高性能、高并发的 Web 服务和代理服务软件。它是由俄罗斯人 Igor Sysoev 开发的,最初被应用在俄罗斯的大型网站 www.rambler.ru 上。后来作者将源代码以类 BSD 许可的形式开源出来供全球使用。nginx以其短小精悍的身板深得广大开发者和商业公司的喜爱。
Nginx 的官方介绍见 http://nginx.org/en/
Nginx 中文介绍见 http://tengine.taobao.org/nginx_docs/cn/
nginx基本配置与使用
nginx的配置相对来说是比较简单的,可以参考官方给的配置及其参数定制化设计自己的web服务器。
user root;
worker_processes 4;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 2048;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$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/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
gzip on;
server_tokens off;
#include /etc/nginx/conf.d/*.conf;
server {
listen 4000;
server_name localhost;
#charset koi8-r;
access_log /var/log/nginx/host.access.log main;
location / {
root 你的项目根目录;
index index.html index.htm ;
}
error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
}
这差不多就是一个静态网页的配置。nginx会直接暴露给客户端,对于静态网站加载速度是非常快的。如果是动态网站,那么就会在你的云服务器上使用其他一个web服务器,比如tomcat,apache,uwsgi等等。
一般来说,这些动态服务器都不会直接暴露给客户端,通常的做法就是,配合nginx使用,nginx加载静态资源,需要动态加载的数据和网页交给那些动态web服务器。这样一来,暴露给客户端的服务器就是nginx,而不是动态的web服务器。
这里演示nginx如何和uwsgi使用。
#uwsgi
server {
listen 4000;
server_name localhost;
location / {
include /etc/nginx/uwsgi_params;
uwsgi_pass localhost:9000;
}
}
nginx只需这样配置,就能和uwsgi通信,从而实现客户端的访问,那么uwsgi又该如何配置呢。请看下面:
#使用nginx连接时,使用
socket = 127.0.0.1:9000
这里有一个特别注意的点,socket的端口和nginx配置端口必须一样才可以通信,但是nginx监听的端口不能是9000了,不然启动的时候会提示端口占用。
这样,当访问ip:4000的时候,就能看到效果了。
nginx操作命令
nginx -s reopen #重启Nginx
nginx -s reload #重新加载Nginx配置文件,然后以优雅的方式重启Nginx
nginx -s stop #强制停止Nginx服务
killall nginx #杀死所有nginx进程
nginx -s quit #优雅地停止Nginx服务(即处理完所有请求后再停止服务)
nginx -V #显示版本和配置选项信息,然后退出
nginx -?,-h #打开帮助信息
nginx -c filename #设置配置文件(默认是:/etc/nginx/nginx.conf)
一般来说,我们会停掉系统自动开启的nginx,而使用自己的配置文件来启动nginx。所以我们需要通过systemctl stop nginx停掉系统启动的nginx,再次使用nginx -c nginx.conf(既可以是绝对路径,也可以是相对路径)。