nginx

本文详细介绍了如何在Ubuntu上安装和配置Nginx,包括启动、检查和配置文件修改。同时,通过Docker进行Nginx的安装和配置,利用docker-compose管理容器,以及设置数据卷持久化配置。还展示了Nginx的反向代理配置,如基本代理、路径映射、负载均衡等高级用法。
摘要由CSDN通过智能技术生成

一、Nginx的安装

Ubuntu安装Nginx
运行:
sudo apt-get intsall nginx
2.启动nginx
运行:
sudo /etc/init.d/nginx start
3.查看网页
浏览器里输入http://localhost/
提示 Welcome to nginx说明安装成功了!

nginx的配置

配置文件自动安装的路径/etc/nginx/nginx.conf
vi /etc/nginx/nginx.conf
手动安装的路径 /usr/local/nginx/conf/nginx.conf
首先利用配置文件启动nginx。
命令:自动安装的nginx -c /etc/nginx/nginx.conf 或手动安装的 nginx -c /usr/local/nginx/conf/nginx.conf
重启服务: service nginx restart
2. 快速停止或关闭Nginx:nginx -s stop
3. 正常停止或关闭Nginx:nginx -s quit
4. 配置文件修改重装载命令:nginx -s reload
注意:nginx.conf配置文件可能引入/etc/nginx/conf.d/nginx.conf
编辑/etc/nginx/conf.d/nginx.conf文件
或者注释include
在这里插入图片描述

在这里插入图片描述

docker安装

安装Nginx
使用docker-compose安装

#在/opt目录下创建docker_nginx目录
cd /opt
mkdir docker_nginx
#创建docker-compose.yml文件并编写下面的内容,保存退出
vim docker-compose.yml

version: '3.1'
services: 
  nginx:
    restart: always
    image: daocloud.io/library/nginx:latest
    container_name: nginx
    ports: 
      - 80:80

执行docker-compose up -d
1
访问80端口,安装成功
在这里插入图片描述

查看Nginx的配置文件
docker exec -it 容器id bash
cd /etc/nginx/
cat nginx.conf
退出容器
exit
关闭容器
docker-compose down
增加数据卷
修改docker-compose.yml文件如下

version: '3.1'
services: 
  nginx:
    restart: always
    image: daocloud.io/library/nginx:latest
    container_name: nginx
    ports: 
      - 80:80
    volumes:
      - /opt/docker_nginx/conf.d/:/etc/nginx/conf.d

重新构建容器
docker-compose bulid
重新启动容器
docker-compose up -d
这时我们再次访问80端口是访问不到的,因为我们映射了数据卷之后还没有编写server块中的内容

我们在/opt/docker_nginx/conf.d下新建default.conf,并插入如下内容

1、默认配置
server{
  listen 80;
  server_name localhost;
  location / {
    root /usr/share/nginx/html;
    index index.html index.htm;
  }
}

#重启nginx
docker-compose restart
再访问80端口,访问成功

2、转到8080
server{
  listen 80;
  server_name localhost;
  location / {
    proxy_pass http://192.168.232.128:8080/;
  }
}

3、转到多个路径
server{
  listen 80;
  server_name localhost;
  # / 根路径
  location / {
     proxy_pass http://192.168.232.128:8080/;
  }
  # /index路径
  location /index {
       proxy_pass http://192.168.232.128:8081/;
    }

}

4、轮询
upstream my_server{
  server 192.168.232.128:8080;
  server 192.168.232.128:8081;
}
server{
  listen 80;
  server_name localhost;
  location / {
    proxy_pass http://my_server;
  }
}

4、权重
upstream my_server{
  ip_hash; #同ip访问同一个端口
  server 192.168.232.128:8080 weight=10;
  server 192.168.232.128:8081 weight=2;
}
server{
  listen 80;
  server_name localhost;
  location / {
    proxy_pass http://my_server;
  }
}

5、tomcat目录js/css无法访问配置
#推荐
location ~ .* {
    proxy_pass http://my_server;
         proxy_set_header Host $http_host;
         proxy_set_header X-Real-IP $remote_addr;
         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 }
##################或者#############
#不推荐
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css)$ { 
   root /tomcat/ROOT/; 
  if (-f $request_filename) { 
     expires 1d; 
     break; 
   } 
} 

Nginx的反向代理

访问tomcat

server {
    listen       80;
    server_name  localhost;
    location / {
        proxy_pass http://192.168.232.168:8080/;
    }
}

关于Nginx的location路径映射

优先级关系:
(location = ) > (location /xxx/yyy/zzz) > (location ^~) > (location ~,~*) > (location /起始路径) > (location /)
  1. = 匹配
location / {
	#精准匹配,主机名后面不能带能和字符串
	#例如www.baidu.com不能是www.baidu.com/id=xxx
}
  1. 通用匹配
location /xxx {
	#匹配所有以/xxx开头的路径
	#例如127.0.0.1:8080/xxx	xxx可以为空,为空则和=匹配一样
}
#3. 正则匹配
location ~ /xxx {
	#匹配所有以/xxx开头的路径
}
#4. 匹配开头路径
location ^~ /xxx/xx {
	#匹配所有以/xxx/xx开头的路径
}

#5. 匹配结尾路径

location ~* \.(gif/jpg/png)$ {
	#匹配以.gif、.jpg或者.png结尾的路径
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值