[原创]# 玩转nginx系列

首先先上如何彻底删除nginx

看到这个标题的小伙伴都惊呆了,还不知道怎么搞,却叫我怎么卸载。为什么我要这样,其实,Reset也是一种解决问题的方式嘛。

首先执行下卸载命令

sudo apt-get --purge remove nginx
sudo apt-get autoremove
dpkg --get-selections | grep nginx
sudo apt-get --purge remove nginx-common

这样呢,就卸载了nginx包括配置文件了

在看看进程,执行

root@localhost:~# ps -ef | grep  nginx
root      3729     1  0 04:40 ?        00:00:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
www-data  3731  3729  0 04:40 ?        00:00:00 nginx: worker process
root      4090  4041  0 05:40 pts/0    00:00:00 grep --color=auto nginx

干掉进程:

sudo kill nginx

查看残余文件

sudo find / -name nginx*
root@localhost:~# sudo find / -name nginx*
/sys/fs/cgroup/systemd/system.slice/nginx.service
/usr/sbin/nginx
/usr/share/doc/nginx-core
/usr/share/doc/nginx-common
/usr/share/doc/nginx
/usr/share/nginx
/usr/share/vim/addons/indent/nginx.vim
/usr/share/vim/addons/syntax/nginx.vim

手动删除文件

sudo rm -r /usr/.....

好了,现在干净了

安装 nginx

sudo apt-get install nginx

查看 nginx 版本

nginx -v #查看详细 nginx -V

启动nginx

sudo /etc/init.d/nginx start

接下来访问:http://localhost 就可以看到nginx的欢迎页面了

Nginx 配置

nginx配置文件位置是 /etc/nginx/nginx.conf默认是下面这样的:

   
root@localhost:~# vi /etc/nginx/nginx.conf
user www-data;
worker_processes auto;
pid /run/nginx.pid;

events {
        worker_connections 768;
        # multi_accept on;
}

http {

        ##
        # Basic Settings
        ##

        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;

        include /etc/nginx/mime.types;
        default_type application/octet-stream;

        ##
        # SSL Settings
        ##

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
        ssl_prefer_server_ciphers on;

        ##
        # Logging Settings
        ##

        access_log /var/log/nginx/access.log;
        error_log /var/log/nginx/error.log;

        ##
        # Gzip Settings
        ##

        gzip on;
        gzip_disable "msie6";

        # gzip_vary on;
        # gzip_proxied any;
        # gzip_comp_level 6;
        # gzip_buffers 16 8k;
        # gzip_http_version 1.1;
        # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
        ##
        # Virtual Host Configs
        ##

        include /etc/nginx/conf.d/*.conf;
        include /etc/nginx/sites-enabled/*;
}


#mail {
#       # See sample authentication script at:
#       # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
#
#       # auth_http localhost/auth.php;
#       # pop3_capabilities "TOP" "USER";
#       # imap_capabilities "IMAP4rev1" "UIDPLUS";
#
#       server {
#               listen     localhost:110;
#               protocol   pop3;
#               proxy      on;
#       }
#
#       server {
#               listen     localhost:143;
#               protocol   imap;
#               proxy      on;
#       }
#}

重点是这个 include /etc/nginx/conf.d/.conf;include /etc/nginx/sites-enabled/;
这样呢,就可以在conf.d文件夹下建立我们自己的配置了,下面是个栗子!

root@localhost:~# cd /etc/nginx/conf.d/
root@localhost:/etc/nginx/conf.d# ls
blog.voidoop.com.conf  www.voidoop.com.conf

我这里配置了两个域名的转发规则,以首页www.voidoop.com为例:

server
{
        listen 80;
        server_name www.voidoop.com;
        
        location /
        {
                proxy_set_header Host $http_host;
                proxy_set_header X-Forward-For $remote_addr;
                proxy_pass http://www.voidoop.com:3000;
        }

        location ~ .*.(gif|jpg|js|css|html)$
        {
                root /var/www/hello/public/;
                expires 30d;
        }
}

因为 express的默认端口是3000,所以,不想去改变他,就用nginx转发。

修改配置之后,重启nginx

/etc/init.d/nginx restart

最后叨叨location的匹配规则

(1)= 前缀的指令严格匹配这个查询。如果找到,停止搜索。

(2)剩下的常规字符串,最长的匹配优先使用。如果这个匹配使用 ^~ 前缀,搜索停止。

(3)正则表达式,按配置文件里的顺序,第一个匹配的被使用。

(4)如果第三步产生匹配,则使用这个结果。否则使用第二步的匹配结果。

在location中可以使用常规字符串和正则表达式。

如果使用正则表达式,你必须使用以下规则:

   (1)~* 前缀选择不区分大小写的匹配

   (2)~  选择区分大小写的匹配

一切不注明转载源都是耍流氓: http://zhutty.cnblogs.com

原文地址:https://www.cnblogs.com/zhutty/p/6184463.html