nginx基础知识

相信做开发的朋友对nginx或多或少都会有一些了解。即使你没亲手对它做过配置,也会知道有这个东西的存在。下面,我就结合自己在工作中所遇上的问题做一些简单的小笔记。

首先,我们需要明白,在win系统中,点击nginx.exe,它会是一闪而过的的dos窗口。这时,我们是可以在任务管理器的进程中看到它的运行状态的。
如果你在win系统中多次点击,那么在进程中就会出来很多很多个nginx.exe 这样的进程。那么,在这个时候,如果你修改了配置,需要重启nginx,直接使用 nginx -s reload,它是不能生效的。
解决的方法就是先把 任务管理器中的进程全部先关了,之后再运行 nginx.exe即可。
先定位到 nginx.exe 的目录

cd D:\phpstudy_pro\Extensions\Nginx1.15.11
taskkill /f /t /im nginx.exe

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1、nginx 代理

server {
    listen       8866;
    server_name  访问的地址;
    
    #charset koi8-r;
    
    #access_log  logs/host.access.log  main;
 
    location / {
        root C:\wwwroot\datav_dp\dist; #项目路径(在 linux系统中,路径是斜杠是 向左的)
        try_files $uri $uri/ /index.html last;
        index  index.html index.htm;
    }
     location /api {
        rewrite  ^.+api/?(.*)$ /$1 break;
           include  uwsgi_params;
        proxy_pass  http://abc.com;#此处修改为自己的请求地址
    }
    #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   html;
    }
}

2、添加白名单和添加黑名单

server {
	listen       4005;
	server_name  localhost;
	index index.html index.htm; 
	root   D:\phpstudy_pro\Extensions\Nginx1.15.11\html\dist;
	location / {
		#allow 白名单的ip地址;
		#deny all;
		#上面两行的意思是除了白名单以外,所有的ip都不能访问
		#deny 黑名单的ip地址
		#allow all
		#上面两行的意思是除了黑名单后,所有的ip都能访问
		#上面的ip可以是多个(白名单和黑名单的原理是一样的)
		try_files $uri $uri/ @router;
		index  index.html;
	}
	location @router {
		rewrite ^.*$ /index.html last;
	}  
	location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$  {
		expires      30d;
	}
	location ~ .*\.(js|css)?$   {
		expires      12h;
	}
	error_page 403 404 /40x.html;
	location = /40x.html{
		root D:\phpstudy_pro\Extensions\Nginx1.15.11\html\dist;
	}
}

3、有些时候,还希望能让网站密码访问,如下图所示
在这里插入图片描述

server {
	listen       4005;
	server_name  localhost;
	index index.html index.htm; 
	root   D:\phpstudy_pro\Extensions\Nginx1.15.11\html\dist;
	auth_basic "Restricted Access";
	auth_basic_user_file D:\phpstudy_pro\Extensions\Nginx1.15.11\html\mypwd.txt; #重要的在这地块,这个就是存密码的文件,注意,文件名必须得有扩展名。密码生成的方法见下文。
	location / {
		try_files $uri $uri/ @router;
		index  index.html;
	}
	location @router {
		rewrite ^.*$ /index.html last;
	}  
	location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$  {
		expires      30d;
	}
	location ~ .*\.(js|css)?$   {
		expires      12h;
	}
	error_page 403 404 /40x.html;
	location = /40x.html{
		root D:\phpstudy_pro\Extensions\Nginx1.15.11\html\dist;
	}
}

3-1、密码生成的方法(以 windows 系统为例)
(1)、生成密码,我们可以借助第三方工具,htpasswd.exe 来生成。htpasswd.exe一般在安装apache后就会自带有的。当然 ,像现在一些集成的php工具(小皮面板、宝塔都会有)。这儿我就不做介绍了
(2)、定位到 htpasswd.exe 所在的目录下,一般为 apache目录下的bin目录,如下所示【D:\phpstudy_pro\Extensions\Apache2.4.39\bin】,请自己根据实际情况对照自己的目录。
(3)、敲黑板来了
A、打开cmd,定位到 【D:\phpstudy_pro\Extensions\Apache2.4.39\bin】目录
在这里插入图片描述
B、在dos命令窗口中,敲如下命令其中
htpasswd 是关键语
-c 是参数(后面跟着是密码文件的路径)
xiaobingpwd.txt 是存密码的文件,如果生成密码成功,会自动生成
admin 是账号(这个不必多说,懂的都懂)
之后会有两次输入密码,第一次是初始的,第二次是确认
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
成功后,会在这儿生成一个密码文件。当然,上面的命令也可以这样子敲

htpasswd -c d:\路径\pwd.txt admin

C、附加
在上面的命令中,其实还有一些常用的参数
请参考【https://bbs.mymyjd.cn/article/article_39891.html】

#需要注意的以下几个
-c #后面跟着的是路径
-B #在windows系统中,注意是大写-B,它表示在原来的密码文件中再添加一个密码
#所以这两个可以结合起来一起使用
htpasswd -Bc d:\路径\pwd.txt admin  #第一个用户名
htpasswd -B d:\路径\pwd.txt admin #第二个用户名

(4)、经过上面生成的密码文件后,把该密码文件放到刚配置nginx的密码目录下即可,最后别忘了重启nginx。
4、vue项目的nginx配置参请参【https://blog.csdn.net/sinat_29740819/article/details/87917263】

5、在vue中,打包后用nginx配置可能会出现跨域的情况。那么,在这种情况下,我们也是可以用代理来解决。
(1)、首先,我们在vue里面,把生产环境里面的api地址设置为空,如下图所示:
在这里插入图片描述
(2)、之后在nginx 里面写入配置

server {
		listen       9991;
		server_name  localhost;
        
        #charset koi8-r;
        
        #access_log  logs/host.access.log  main;
     
        location / {
			root D:\xiaobing\jnpf文件\原码\jnpf-web-develop\dist;
	        try_files $uri $uri/ /index.html last;
            index  index.html index.htm;
        }
		location @router {
			rewrite ^.*$ /index.html last;
		}
		location /api {
			#proxy_set_header Host $host;
            proxy_pass www.abc.com;#此处修改为自己的请求地址
            #rewrite  ^.+api/?(.*)$ /$1 break;
			#include  uwsgi_params;
        }
		
        #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   html;
        }
		
		gzip on;
		gzip_min_length 1k;
		gzip_comp_level 9;
		gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
		gzip_vary on;
		gzip_disable "MSIE [1-6]\.";
	}```

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值