【Nginx】Ubuntu下安装配置Nginx

转载请注明出处:https://blog.csdn.net/u012250875/article/details/81086017

一、安装和卸载:

安装:

apt-get install software-properties-common
add-apt-repository ppa:nginx/stable 
apt-get update
apt-get install nginx

卸载:

卸载方法一

apt-get remove nginx  # 删除nginx,保留配置文件
rm -rf /etc/nginx  #删除配置文件

卸载方法二
方法二没有尝试过,是从网上搜的,顺便记录

#删除nginx连带配置文件
apt-get purge nginx

其他操作(启动,检查状态,停止)

寻找安装目录
安装完时,界面会给予提示安装在哪的,如果不小心关了,或者刷屏了,可以搜索一下

#方法一
whereis nginx
#方法二
find / -name nginx

启动nginx
寻找到安装目录后(我的是/usr/sbin/nginx),通过cd切换到nginx安装目录下,然后键入命令回车,执行瞬间完成(我这发现看不到任何提示信息)

nginx

启动nginx可能发生的错误:
1.nginx.conf配置异常,此时会提示你配置文件哪一行发生错误
2.nginx侦听的端口被其他应用占用了,比如tomcat启动起来后(默认端口8080),你用nginx去侦听8080便会提示冲突

检查nginx状态
输入以下指令

nginx -t  #检测配置文件是否正确 

默认安装完应该是正常的,如果状态正常提示:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

如果发生状态错误,会进行相应提示,常见的配置错误:
1.增加配置信息时候,忘记在结尾加分号
2.端口冲突,在配置文件中增加了两个server{}配置信息,listen 相同的端口

修改nginx.conf
使用vim进行修改,修改完后记得使用上面的nginx -t命令进行检查是否ok,如果状态ok后进行重启nginx

vim nginx.conf

停止nginx
键入如下命令进行停止

nginx -s stop 

以上操作可以顺利帮你在ubuntu上安装或卸载nginx,最后,可以在浏览器中访问域名或地址来验证是否安装,如果你看到网页上返回:Welcome to nginx!
恭喜你!

二、nginx功能

这里先不说nginx功能问题,后面有空再补上

三、nginx常规配置

同上,先不说nginx配置问题,以后补上,网上也一大堆

四、通过nginx进行多项目访问

第一次接触nginx,接触原因是:我服务器上需要部署python开发的项目,还有java开发的项目,由于部署容器不一样,并且各个容器默认端口也不一样。我想要解决的问题就是:通过域名(或域名/项目名)来访问项目,而不考虑端口的事情,都用80端口来访问不同端口下的项目。至于我这个需要是否还有别的方法暂时没有研究,但误打误撞野路子上发现了nginx,所以试着用它来解决我的这个问题。

方案一:

采用location配置
1.用vim打开nginx.conf,增加server域,如果有了你要监听的端口的server,那么改动server即可;如果没有想监听的端口,则在根节点下新建。

server{
    #...
    #server相应的配置
    #...
}

2.新建完后在listen 后配置你要监听的端口,本文监听的80端口,也是最常用的

server{
    listen 80; #别忘了加分号
    #server其他配置
}

3.设置server_name 他的值是一个域名或者ip地址,一般是nginx安装服务(这点我不能确定,我这里的需求是用的我的安装服务器地址)

server{
    listen 80; #别忘了加分号
    server_name www.codist.cn ; 
    #server其他配置
}

4.在server下增加代理,比如我tomcat下有项目zrlog、jlwy、lover三个项目,python项目有booknote,那么我增加四个,访问路径可以是正则,也可以是具体字符串,proxy_pass 的值表示当用户要请求这个路径时,转交给指定的工程去处理(不知道理解有问题没,如果有问题多多指教)

server{
    listen 80; #别忘了加分号
    server_name www.codist.cn ; #ip或者域名 一般是nginx安装服务器
    #server其他配置
    location /zrlog{ #访问路径可以是正则
        proxy_pass http://域名或ip地址:端口/zrlog;
        #location其他配置
    }
    location /jlwy{
        proxy_pass http://域名或ip地址:端口/jlwy;
        #location其他配置
    }
    location /lover{
        proxy_pass http://域名或ip地址:端口/lover;
        #location其他配置
    }
    location /booknote{
        proxy_pass http://域名或ip地址:端口/booknote;
        #location其他配置
    }
}

如果你只想通过域名访问不拼接任何东西,location使用 /进行匹配,需要注意的是proxy_pass映射的url必须本身就是tomcat的根项目(根项目的配置可以通过替换ROOT文件或者修改server.xml来设置)

location / {
    proxy_pass http://域名或ip地址:端口; 
}

这个时候配置完成,检查配置状态是否ok,ok的话重启nginx,然后调用在浏览器上进行访问
www.codist.cn/zrlog、www.codist.cn/jlwy、www.codist.cn/lover、www.codist.cn/booknote,发现进入了相应的web页面里
(上述四个地址不用试了,因为codist.cn这个域名还不能用,只是示意一下)

5.如果需要进行负载均衡,则新建一个upstream (这里取得mysvr),将proxy_pass配置由上面的具体地址改为http://mysvr;即可,如下配置,如果你访问www.codist.cn/testproject时,该请求就会交由mysvr下配置的这些服务器,并按照一定规则(负责均衡策略)指定到某一台具体的服务器上。

#设置负载均衡的服务器列表,负载均衡的策略有以下五种,根据需求选择:
#1.轮询(默认)
#2.weight
#3.ip_hash(解决session共享)
#4.fair(第三方)
#5.url_hash(第三方)
upstream mysvr{
    server 地址:端口 down; #down表示该服务器不参与负载
    server 地址:端口 weight=2;#weight默认为1,值越大,负载的权重就越大
    server 地址:端口 backup;#其他所有的非backup机器down或者忙的情况下,就来请求backup机器,该服务器压力最小
}

server{
    listen 80; #别忘了加分号
    server_name www.codist.cn ; #ip或者域名 一般是nginx安装服务器
    #server其他配置
    location /testproject{ #访问路径可以是正则
        proxy_pass http://mysvr;
        #location其他配置
    }
}

方案二

采用rewrite重定向

#格式如下:
rewrite <需要匹配的正则> <重定向的路径> 
#例如
rewrite /$ http://www.codist.cn:8080/zrblog permanent;
#review支持标记如下:
last  #本条规则匹配完成后,继续向下匹配新的location URI规则
break  #本条规则匹配完成即终止,不再匹配后面的任何规则
redirect  #返回302临时重定向,浏览器地址会显示跳转后的URL地址
permanent  #返回301永久重定向,浏览器地址栏会显示跳转后的URL地址

五、写在最后

本人对nginx并不了解,文中如有我理解错误或使用错误的地方,希望能提出纠正,谢谢

你可能感兴趣的:(服务器,nginx安装,nginx多项目,nginx配置,nginx,ubuntu,nginx)