nginx安装使用详解,实战

墨色 1月前 ⋅ 399 阅读

安装方式

一. docker 安装

1.拉取镜像 docker pull nginx
2.查看镜像ID docker images
3.运行

  • 新建本地挂载用目录,conf.d和logs目录,位置自己记住就好,如/app/nginx/conf.d和/app/nginx/logs
  • 在conf.d下新建默认配置文件default.conf,并写入监听配置
server {
	listen 80;
	server_name _;
	charset utf-8;
}
  • 启动docker-nginx (这里的 m_nginx 是自己取的别名,后续都会用到)
ocker run -itd -p 80:80 -v /app/nginx/conf.d:/etc/nginx/conf.d -v /app/nginx/logs:/var/log/nginx --name m_nginx nginx
  • 在浏览器中输入ip即可访问,出现下图,即成功
  • 部署静态网站,配置如下
    location / {
        # 注意docker中目录挂载,挂载后,这里填写docker中地址
        # 绝对路径,站点目录不写,则访问为 ip:port/dir
        root /usr/share/nginx/html/;
        index index.html;
     }
    

4.配置代理

  • 打开default.conf vim default.conf
  • 在server里面加入如下代码
location / {
	proxy_pass http://ip:port;
	proxy_redirect default;
}
  • 保存后重启docker nginx, docker restart m_nginx
  • 此时浏览器访问 ip即可自动转到代理的地址上,如proxy_pass为http://123.4.5.6/8080,则此时访问http://123.4.5.6的效果是一样的
  • 如果服务已经器备案,加上域名监听即可,在 listen 80下修改或增加一行server_name,如下(多个空格隔开)
server_name example.cn www.example.cn;
  • 此时即可通过域名访问(注意,通过域名使用80 http端口或443 https端口,服务器必须备案) 5.配置多个代理(多域名访问,如aa.example.cn 和 bb.example.cn 同时访问该服务器,aa.example.cn指向后台的8081端口服务,bb.example.cn指向后台的8082端口)
  • 在default.conf中增加多个server,如下配置后,访问域名即可
  • 增加404监听,当输入cc.example.cn的时候,直接返回
server{
	listen 80;
	server_name _;
	return 404;
}
server{
	listen 80;
	server_name aa.example.cn;
	charset utf-8;
	location / {
		proxy_pass http://ip:8081;
		proxy_redirect default;
	}
}
server{
	listen 80;
	server_name bb.example.cn;
	charset utf-8;
	location / {
		proxy_pass http://ip:8082;
		proxy_redirect default;
	}
}

6.配置 http 强制跳转 https

  • 例如后台为tomcat等服务容器,tomcat配置了80和443,并且tomcat配置了SSL证书,此时前台通过访问,需要强制跳转到https
  • tomcat的web.xml里面可配置强制跳转
  • 通过nginx转发(用到了tomcat,实际中肯定直接配置web.xml了,这里为了讲解),default.conf中配置如下
server {
	listen 80;
	server_name aa.example.cn;
	rewrite ^(.*)$ https://$host$1 permanent;
}
server {
	listen 80;
	server_name bb.example.cn;
	rewrite ^(.*)$ https://$host$1 permanent;
}

7.在nginx中配置SSL证书

  • 申请证书,目前阿里等个大云厂商都有申请证书都地方,如阿里证书购买链接在这里插入图片描述 或者是在 https://freessl.cn/购买也可以,方法一样 在这里插入图片描述
  • 购买都同时注意要在域名服务商处配置解析,阿里云解析地址,进入后,点击域名后面都 “解析设置”
  • 购买完成后,审核通过即可点击下载,阿里云下载页面,点击右侧下载,选择对应服务,我们选择nginx下载 在这里插入图片描述
  • 之后我们将下载都文件解压,放到服务器上,然后在default.conf中添加证书,代码如下,配置后,重启docker nginx即可
server {
	listen 443 ssl;
	server_name aa.example.cn;
	# 必须是绝对路径
	ssl_certificate "/home/yushan/demontf/2076603_aa.example.cn.pem";
    ssl_certificate_key "/home/yushan/demontf/2076603_aa.example.cn.key";
    location / {
        proxy_pass http://ip:8081;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;
        proxy_redirect default;
	}
}
server {
    listen 443 ssl; # redirect to https
    server_name bb.example.cn;
    # 必须是绝对路径
    ssl_certificate "/home/yushan/demontf/2005538_bb.example.cn.pem";
    ssl_certificate_key "/home/yushan/demontf/2005538_bb.example.cn.key";
    location / {
        proxy_pass http://ip:8082;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;
        proxy_redirect default;
    }
}

二. 系统直接安装(基于centos)

1.安装依赖

yum -y install gcc pcre-devel zlib-devel openssl openssl-devel

2.在/usr/local/下,下载nginx包(其它版本见nginx下载地址 https://nginx.org/download/)

wget https://nginx.org/download/nginx-1.9.9.tar.gz
## 解压
tar -zxvf nginx-1.9.9.tar.gz
##进入nginx目录
cd nginx-1.9.9
## 配置
./configure --prefix=/usr/local/nginx
# make
make
make install
# 目录下创建logs 并赋权限
cd /usr/local/nginx
mkdir logs
chmod 700 logs
#启动 停止 重启
cd /usr/local/nginx/sbin
./nginx 启动
./nginx -s stop 停止
./nginx -s reload 重启

3.配置nginx开机自启动

vim /etc/rc.d/rc.local

在里面添加一行 /usr/local/nginx/sbin/nginx 如下图 在这里插入图片描述 4.配置代理,方向代理,SSL证书,和上面docker安装环境一样

5.nginx也可做负载均衡服务,详细配置,后续贴上。

以上。


全部评论: 0

    我有话说: