0
点赞
收藏
分享

微信扫一扫

nginx配置相关心得

elvinyang 2022-04-07 阅读 92

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(既可以是绝对路径,也可以是相对路径)。

壬寅年三月初七

举报

相关推荐

0 条评论