Nginx 配置 和安装

Nginx

博客

web服务器和web框架的关系

web服务器(nginx):
接收HTTP请求(例如www.pythonav.cn/xiaocang.jpg)并返回数据

web服务器,仅仅就是 接收一个web请求,返回一个磁盘上的静态资源(jpg,gif,mp4,...)
pythonav.cn/man.jpg

错误码
50x 服务端错误,django flask后台 崩了
40x 客户端错误 权限不足 ,资源不存在等等...
30x 资源重定向
20x 请求正确返回

技术栈:

java + apache(web服务器,处理静态资源) + oralce(数据库) + tomcat(处理java应用) + svn(代码托管) + js +jqery + redhat
为了省钱,切换开源技术栈
java + perl + python + nginx + mysql + git + js ... + centos

web框架(django,flask):开发web应用程序,处理接收到的数据

nginx安装步骤

源码编译安装(源码编译,可以自定制更多功能) openssl

  1. 解决软件正常运转所需依赖包,

yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel openssl openssl-devel -y

  1. 下载源代码

wget -c https://nginx.org/download/nginx-1.12.0.tar.gz

  1. 解压缩

tar -zxvf nginx-1.12.0.tar.gz

  1. 进入源码目录,编译安装

./configure --prefix=/opt/nginx112/

make && make install

  1. 进入nginx安装好的目录

cd /opt/nginx112/

  1. 学习nginx功能目录,nginx主目录结构如下

[root@s16ds nginx112]# ls

conf 配置文件nginx.conf(nginx的功能参数,都在这个文件定义了)
html 存放前端页面
logs 存放nginx的运行日志,错误日志
sbin 存放nginx可执行程序的目录

  1. 卸载原本的yum安装的nginx

yum remove nginx -y

  1. 添加nginx的环境变量,可以快捷使用nginx

vim /etc/profile

PATH="/opt/python36/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/node-v8.6.0-linux-x64/bin:/opt/nginx112/sbin"

  1. 命令

    • 开启nginx

      nginx

    • 重启nginx

      nginx -s reload

    • 关闭nginx

      nginx -s stop

  2. 学习nginx.conf 核心配置

nginx web 核心功能在这里已定义

  • 路径:

    vim /opt/nginx112/conf/nginx.conf

#工作进进程数
worker_processes  4;
# 日志配置
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
error_log  logs/error.log  info;  

pid        logs/nginx.pid; 

events {
    worker_connections  1024;
}

http {
    #定义nginx虚拟主机的  
    server {
		#nginx监听的端口,默认浏览器是80
        listen       80;
		#填写服务器的域名,如果你有域名,nginx会解析到当前这个虚拟主机
		#当我访问pythonav.cn:80 
        server_name  pythonav.cn;
        #location就是nginx的路径资源匹配,
        #就是当我请求
        #pythonav.cn
        #pythonav.cn/man.jpg
        #pythonav.cn/av/pian.mp4 
        #这个 location  /  这个语法是万能匹配,你所有的请求,都会进入这个location
        location / {
            #这个root参数,用于定义网页根目录,路径
            root   html;
            #定义网页的首页文件,名字且必须叫做index.html 
            index  index.html index.htm;
            }
	# 错误 404 返回  
    error_page  404              /404.html;
	}
    ...
}
  1. nginx多虚拟主机

    ip 和域名的关系 一对多

在linux服务器上,运行 2 个网站

nginx.conf定义多虚拟主机配置如下:

http{
	# 虚拟主机1,我门用它运行,吃鸡网站
	server{
		listen 80;
		# 当我访问的域名是 s16chiji.com ,就进入这个server标签
		server_name  s16chiji.com;
			location  / {
				# 返回/opt/s16chiji目录下的内容 
				root  /opt/s16chiji/;
				index index.html;
			}
	}
	# 虚拟主机2,用它运行,s16韩剧网站
	server{
		listen 80;
		server_name  s16hanju.com;
		location / {
			root  /opt/s16hanju;
			index index.html;
		}
	} 
}
  1. 配置两个虚拟主机的网站资源

    1. 配置吃鸡网游的资料

      /opt/s16chiji 目录下创建 index.html

    2. 配置韩剧网址

      /opt/s16hanju 目录下创建 index.html

    3. 配置两个本地解析的域名 ,问题?去linux下还是windows下配置??

      在本地 修改 C:\Windows\System32\drivers\etc\hosts 文件,写入如下配置
      192.168.15.71 s16chiji.com
      192.168.15.71 s16hanju.com

    4. 在windows下测试访问 是否正常

      s16chiji.com
      s16hanju.com

12.定义nginx错误页面优化 404页面定制
修改 **nginx.conf **,找到如下参数

#通过这个参数,定义错误页面的文件  ,当状态码是 404 400 401 时,返回40x.html页面  路径以root 路径拼接
error_page  404 401 400 403              /40x.html;
  1. nginx用访问 日志access.log

    找到nginx.conf开启如下功能

    http {
        include       mime.types;
        default_type  application/octet-stream;
    log_format  main  'remote_addr - remote_user [time_local] "request" '
                          'status body_bytes_sent "$http_referer" '
                          '"http_user_agent" "http_x_forwarded_for"';
    access_log  logs/access.log  main;
    
    

    配置填写完毕后,重启nginx,加载功能

posted @ 2019-04-29 19:13  拐弯  阅读(200)  评论(0编辑  收藏  举报