专栏首页Python 学习day108&day109部分-Linux安装和配置nginx
原创

day108&day109部分-Linux安装和配置nginx

1.gnginx下载与安装

1.1下载

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

1.2安装

1.2.1解压缩

# cd 到下载目录中
  tar -zxvf nginx-1.12.0

1.2.2安装

# cd 到解压目录里面
  ./configure --prefix=/opt/nginx1-12/ --with-http_ssl_module --with-http_stub_status_module

1.2.3执行编译和安装

# 执行完上一步  
  make && make install 

1.2.4检查安装是否成功,一定存在下面四个文件夹,少一个都是失败

6.在/opt/nginx1-12/ 安装好nginx的目录,找到一个sbin的文件夹,找到nginx的启动命令,然后启动nginx服务
# 检查nginx安装后的目录,ll /opt/nginx1-12
    drwxr-xr-x 2 root root 333 12月  6 09:32 conf   配置文件存放的目录,  nginx.conf这个文件就是nginx的主配置文件
	drwxr-xr-x 2 root root  40 12月  6 09:32 html   存放网页根目录的文件夹,存放了index.html   **.html  **.gif **.jpg 
	drwxr-xr-x 2 root root   6 12月  6 09:32 logs   日志目录
	drwxr-xr-x 2 root root  19 12月  6 09:32 sbin   nginx启动脚本目录

1.2.5运行nginx的相关命令

./sbin/nginx               # 直接启动 nginx 服务
./sbin/nginx -s stop       # 关闭 nginx 服务
./sbin/nginx -s reload     # 平滑重启(修改了nginx配置文件,不重启服务就加载配置且生效)
../sbin/nginx -t           # 检测nginx.conf 配置文件的语法正确性

1.2.6检查运行 nginx

2.nginx访问多域名配置

2.1编辑 nginx 配置文件

vim ./conf/nginx.conf
# 多虚拟主机的配置
# (复制多个 server )

1.修改nginx底下的conf/nginx.conf ,修改信息如下
		server {
			listen       80;
			server_name  www.test1.com;
			location / {
				# 该服务的网页文件在 /data/test1 下
				root   /data/test1;
				# 默认访问网页 index 文件可自己编辑
				index  test-index.html;
			}
			}
		server {
			listen       80;
			server_name  www.test2.com;
			location / {
				# 该服务的网页文件在 /data/test2 下
				root   /data/test2;
				# 默认访问网页 index 文件可自己编辑
				index  test2-index.html;
			}
			}
2.完成上述配之后
    ../sbin/nginx -t  #检测语法
    ../sbin/nginx -s reload #平滑重启 

2.2编辑 Windows 的 host 文件

# 写入到本地dns解析文件,由于我是在windows中通过浏览器访问,应该在windows的hosts文件中添加记录
# hosts文件就是一个本地dns(就是将域名转化成ip地址)强制解析的文件

# windows的hosts文件就在这里:C:\Windows\System32\drivers\etc\hosts ,写入如下信息

# 虚拟机的 ip
192.168.1.162   www.test1.com
192.168.1.162   www.test2.com

3.nginx状态模块功能

1.在 nginx.conf 的 server 中,添加一个参数即可
      	server {
			listen       80;
			server_name  www.test2.com;
			location / {
				# 该服务的网页文件在 /data/test2 下
				root   /data/test2;
				# 默认访问网页 index 文件可自己编辑
				index  test2-index.html;
			}
			
			# 在server  里面添加这个即可
			location /status {
                stub_status on;
            }
            
			}

4.nginx访问日志功能

1.编辑 nginx.conf 打开注释

   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;
2.log_format main 的参数详解

    $remote_addr    记录客户端ip
    $remote_user    远程用户,没有就是 “-”
    $time_local    对应[14/Aug/2018:18:46:52 +0800]
    $request     对应请求信息"GET /favicon.ico HTTP/1.1"
    $status      状态码
    $body_bytes_sent  571字节 请求体的大小
    $http_referer  对应“-”  由于是直接输入浏览器就是 -
    $http_user_agent  客户端身份信息
    $http_x_forwarded_for  记录客户端的来源真实ip 97.64.34.118
3.tail -f ./logs/access.log 就可以查看访问日志

# 内容如下
192.168.12.60 - - [06/Dec/2018:11:24:04 +0800] "GET / HTTP/1.1" 304 0 "-" 
"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) 
Chrome/70.0.3538.110 Safari/537.36" "-"

5.nginx的location配置动态静态资源

# location存在于 nginx.conf 的 server 中
# 一个 server 可以配置多个 location

5.1动态资源请求,一般就是默认 location 配置

# 我的请求发给nginx的时候,nginx不做处理,直接返回给django

# www.xxx.com/login
# www.xxx.com/register

location / {
 uwsgi_pass http:0.0.0.0:8000;
}

5.2静态资源请求

# 如果你想请求图片资源,就直接丢给nginx去做处理
# ginx处理静态资源更为优秀

# lias 给location配置一个文件工作目录
# 使用待定
# www.xxx.com/xxx.jpg

location ~* \.(gif|jpg|jpeg|mp4)$ {
 alias    /data/static/; 
}

6.nginx正向反向代理的概念

# 正向代理
# 代理的是客户端
# 反向代理
# 代理的是服务端

6.1反向代理设置

server {
       listen 80;
		  server_name  www.xxx.com;
		  location / {
		  proxy_pass http://192.168.1.162;  # 动态请求直接转发给 该ip; 
}

7.nginx负载均衡的简单使用

7.1环境准备

# 环境准备,准备3台服务器
    192.168.1.161   nginx入口主机
    192.168.1.162   应用服务器1
    192.168.1.163   应用服务器2

7.2关闭所有的防火墙

7.3配置

7.3.1在nginx入口主机里配置 nginx.conf

1.修改配置文件nginx.conf ,写入如下配置

	# 定义负载均衡池名字叫做 mydjango
	upstream mydjango {   
		# 池子中存放2个服务器,默认轮训方式调度服务器
		server 192.168.1.162:8000; 
		server 192.168.1.163:8000;
		
		# 也可以根据权重分配访问率	
		# 被分发的概率是 30%
		# server 192.168.1.162:8000 weight=3; 
		# 被分发的概率是 70%
		# server 192.168.1.163:8000 weight=7;
}
	
	# root参数定义网页的根目录,可以写在虚拟主机内,局部变量
	# 如果写在server标签外,就是全局变量
	root html;
	
	# 虚拟主机1
	server {
	   listen 80;
	  # 访问域名
	  server_name  www.xxx.com;
	  location / {
	  
	  # 当请求发送到www.xxx.com的时候,匹配到 / 
	  # 转到上方负载均衡池
	  proxy_pass http://mydjango;
	  
	  # 包含语法参数,将一个配置文件添加到当前虚拟主机生效,这个文件要手动创建
	  # 这个proxy_params文件创建在/opt/nginx1-12/conf底下
	  include proxy_params;
}
}

7.3.1主机 proxy_params 的配置

2.手动创建这个参数文件
# 参数只是给代理加上一些功能
# touch /opt/nginx1-12/conf/proxy_params
# 写入信息
	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;

	proxy_connect_timeout 30;
	proxy_send_timeout 60;
	proxy_read_timeout 60;

	proxy_buffering on;
	proxy_buffer_size 32k;
	proxy_buffers 4 128k;

7.3.2部署应用服务器

# 配置 192.168.1.162 的应用服务器1
1.准备一个flask代码,运行  
pip3 install flask
2.准备代码  myflask.py 
	from flask import Flask
	app=Flask(__name__)
	@app.route('/')
	def hello():
	return "<h1>我是服务器1</h1>"
	if __name__=="__main__":
	app.run(host='0.0.0.0',port=8000)
3.启动应用服务器
python3 myflask.py 


# 配置 192.163.1.163 的应用服务器2
1.准备一个flask代码,运行  
pip3 install flask
2.准备代码  myflask.py 
	from flask import Flask
	app=Flask(__name__)
	@app.route('/')
	def hello():
	return "<h1>我是服务器2</h1>"
	if __name__=="__main__":
	app.run(host='0.0.0.0',port=8000)
3.启动应用服务器
python3 myflask.py 

7.3.3.通过访问nginx负载均衡器入口,查看负载均衡 是否正常分配,默认是轮训方式

# 访问自己的nginx负载均衡的ip地址,查看结果

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • day96-day98-media配置&token时效&models字段auto_XX

    1.1 token = request.META.get('HTTP_AUTHENTICATE','')

    少年包青菜
  • day110-项目发布配置

    少年包青菜
  • day80-<权限组件>-基本流程以及部分代码

    少年包青菜
  • 解决Nginx出现403 forbidden (13: Permission denied)报错的四种方法

    我是在在本地用虚拟机中通过yum安装nginx的,安装一切正常,但是访问时报403,

    用户1214487
  • nginx服务部署 说明

    第1章 常用的软件 1.1 常用来提供静态服务的软件 Apache :这是中小型Web服务的主流,Web服务器中的老大哥, Nginx :大型网站Web服务...

    惨绿少年
  • CentOs下安装Nginx与反向代理Tomcat

    vi /usr/local/nginx/conf/nginx.conf ,添加如下配置:

    热心的程序员
  • linux彻底删除nginx

    人生不如戏
  • Linux下安装nginx

    查看版本号,开启nginx,查看进程 nginx –v systemctl start nginx ps -ef|grep nginx

    咕咕星
  • Centos7下nginx的安装与配置

    说明:软件安装的基础目录路径:/usr/local 所以下载软件的时候切换到此目录下下载直接解压即可

    sunny1009
  • 原 ubuntu下安装NGINX和PHP

    霡霂

扫码关注云+社区

领取腾讯云代金券