Linux下的Nginx反向代理的安装配置与使用

本Nginx的安装配置所在系统是RedHat系的CentOS,下列步骤都默认在root权限下

Nginx的简介:Nginx是一款轻量级Web服务器、也是一款反向代理服务器,Nginx可直接支持Rails和PHP的程序、可作为HTTP反向代理服务器、可作为负载均衡服务器、作为邮件代理服务器、帮助实现前端动静分离。

Nginx特点:高稳定、高性能、资源占用少、功能丰富、模块化结构、支持热部署

要安装Nginx,需要先安装Nginx的依赖:gcc、pcre、zlib、openssl(如需支持ssl,才需安装openssl)

1.综合命令就是:yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel

然后等待系统自动安装完毕

2.下载Nginx的源代码,选择自己所需版本,解压缩安装,网址:http://www.nginx.org/

3.下载完成之后,通过命令(cd /xxx/xxx)去到所下载的目录对压缩包解压,命令:tar -zxvf nginx-1.10.0.tar.gz

4.通过命令(cd /xxx/xxx)进入nginx的目录之后,执行命令:./configure(是否需要sudo权限看具体环境所决定,因本机在root环境所以不需要加sudo)

也可以指定安装目录,在上条命令之后增加参数--prefix=/usr/nginx

不指定目录则默认安装在/usr/local/nginx(可通过命令whereis nginx查询)

5.继续执行命令:make

6.再执行命令:make install

Linux下的Nginx反向代理的安装配置与使用_第1张图片

到此为止,nginx的安装与配置就完成了,接下来启动nginx验证一下。

1.通过命令:cd /usr/local/nginx进入nginx的安装目录

Linux下的Nginx反向代理的安装配置与使用_第2张图片

2.通过命令进入它的子目录:cd sbin/

3.通过命令:./nginx正式启动nginx

4.因为nginx默认端口为80,则可以在本地机器浏览器上输入url:127.0.0.1:80(如果不在本机浏览器,则输入nginx服务机器的ip地址)来进行访问,看到以下页面则代表成功

Linux下的Nginx反向代理的安装配置与使用_第3张图片

启动成功之后就可以使用Nginx反向代理服务器来解析域名了。

1.配置nginx.conf

命令如下:

cd /usr/local/nginx(进入nginx安装目录)

cd conf(进入conf目录)

mkdir vhost(创建vhost文件夹)

Linux下的Nginx反向代理的安装配置与使用_第4张图片

vim nginx.conf(修改nginx的配置文件)

Linux下的Nginx反向代理的安装配置与使用_第5张图片

在配置文件中添加该语句:include vhost/*.conf;(不能漏分号) 这语句的意思是把vhost文件夹下的所有.conf文件加载过来(注意是.conf后缀名的文件),这么做的原因是方便以后维护,把每个域名做成一个.conf文件,通过主配置include进来,这样以后想维护某个域名,就只需直接对那个对应的.conf进行操作,而不会影响到其它的域名,且文件不会过于臃肿。这跟Spring的配置文件类似,Spring配置文件通过把负责各个模块功能的文件include进去,从而避免配置文件过于复杂臃肿。

Linux下的Nginx反向代理的安装配置与使用_第6张图片

2.添加一些域名来测试

命令:vim /etc/hosts (编辑hosts文件)

Linux下的Nginx反向代理的安装配置与使用_第7张图片

进入文件之后,添加以下信息

Linux下的Nginx反向代理的安装配置与使用_第8张图片

具体的ip地址视您本机的情况所定,后面的域名也可以按您需求所修改

2.创建各个.conf文件

命令:cd vhost(进入vhost文件夹,刚才在上文已经创建了的,里面没有内容,现在要添加内容)

命令:vim www.baidu.com.conf(创建该文件并编辑)

在文件里添加以下信息

server {
 listen 80;
 autoindex on;
 server_name www.baidu.com;
 access_log /usr/local/nginx/logs/access.log combined;
 index index.html index.htm index.jsp index.php;
 #error_page 404 /404.html;
 if ( $query_string ~* ".*[\;'\<\>].*" ){
 return 404;
 }
 location / {
 proxy_pass http://127.0.0.1:8080;
 add_header Access-Control-Allow-Origin *;
 }
 }

功能是当用户属于www.baidu.com域名时,将跳转到本地的8080端口的程序上,即tomcat

3. :wq保存文件退出之后,需要重启nginx服务器

命令:  ../../sbin/nginx -s reload

Linux下的Nginx反向代理的安装配置与使用_第9张图片

3.通过浏览器测试

Linux下的Nginx反向代理的安装配置与使用_第10张图片

4.上面的例子是通过解析域名,代理到网页,下面举个nginx转发到本地文件

命令:vim image.baidu.com.conf(创建该文件并编辑)

Linux下的Nginx反向代理的安装配置与使用_第11张图片

在文件下添加以下信息

server {
 listen 80;
 autoindex off;
 server_name image.baidu.com;
 access_log /usr/local/nginx/logs/access.log combined;
 index index.html index.htm index.jsp index.php;
 #error_page 404 /404.html;
 if ( $query_string ~* ".*[\;'\<\>].*" ){
 return 404;
 }
 location ~ /(mmall_fe|mmall_admin_fe)/dist/view/* {
 deny all;
 }
 location / {
 root /ftpfile/;
 add_header Access-Control-Allow-Origin *;
 }
 }
功能是当用户输入image.baidu.com的时候,转发到本地的/ftpfile/文件,想了解ftp服务器的可参考本人上一篇博文。

5.然后操作就跟上面一致

:wq保存文件退出之后,需要重启nginx服务器

命令:  ../../sbin/nginx -s reload

Linux下的Nginx反向代理的安装配置与使用_第12张图片

6.通过网址访问:

Linux下的Nginx反向代理的安装配置与使用_第13张图片

Nginx的安装配置以及使用已经介绍完了,下面来讲讲注意事项:

每个域名的.conf的配置文件当中都有一个autoindex on或autoindex off的配置,那么到底是on还是off呢?

autoindex代表自动创建索引,当资源转移到文件之后,当是on的时候,则该主文件页面下的所有索引都被自动创建出来了,也就是能访问该文件下的所有内容了,虽然前端的资源,例如js等源码可以被访问,但是索引能被访问很容易被穷举掉。除非有这样的业务需求(例如下载,maven下载就是如此),否则就把它设为off.当设为off之后,用户想访问该

文件里的下一级时,浏览器会显示403Forbidden没有权限。但是直接通过网址域名来访问其子目录是可以的,只不过是不能通过主页面进入下一级。

此文到此结束,祝工作顺利,欢迎大神一起讨论

你可能感兴趣的:(Linux,nginx,代理)