nginx远程访问
⑴ 如何使用nginx给自己开发的服务配置域名,让外网用户可以访问
如何给自己开发的服务配置域名,让外网用户可以访问?
解决这个问题需要有域名(要解析),服务器和自己的服务
================================================
以上可以条件都具备之后,修改服务器上的nginx配置即可。
修改nginx配置如下:
原配置(默认配置):
server {
listen 80;
server_name localhost;
}
修改后配置:
server {
listen 80;
server_name 你的域名.cn;
}
作用是当用户访问域名"http://你的域名.cn"时调转到127.0.0.1:8989上
同时也可以指定具体的路径如下:
server {
listen 80;
server_name 你的域名.cn;
}
作用是当用户访问路径"http://你的域名.cn/start"时调转到127.0.0.1:8989/home/start上
⑵ 如何在远程linux服务器上搭建Nginx
1.将nginx的压缩包nginx-1.8.0.tar.gz上传到Linux服务器
2.由于nginx是C语言开发的并且我们这里是通过编译nginx的源码来安装nginx,所以Linux上要安装C语言的编译环境gcc,
如果已经安装此步可以省略,否则执行命令:
3.nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库。
yum install -y pcre pcre-devel
4.zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库。
yum install -y zlib zlib-devel
5.nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。
yum install -y openssl openssl-devel
6.在Linux上创建nginx的临时目录,注意我这里是在Linux文件系统下的
/var下创建文件夹temp在temp下创建nginx。即:/var/temp/nginx
7.执行命令:
./configure --prefix=/usr/local/nginx --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --with-http_gzip_static_mole --http-client-body-temp-path=/var/temp/nginx/client --http-proxy-temp-path=/var/temp/nginx/proxy --http-fastcgi-temp-path=/var/temp/nginx/fastcgi --http-uwsgi-temp-path=/var/temp/nginx/uwsgi --http-scgi-temp-path=/var/temp/nginx/scgi
8.编译源码,安装nginx:
makemake install
9.启动nginx:
cd /usr/local/nginx/sbin/./nginx -c /usr/local/nginx/conf/nginx.conf
在浏览器中访问: http://localhost 出现下面界面表示安装成功:
我们此时也可以查看到nginx进程的运行情况:
ps aux|grep nginx
10.nginx服务器的停止方式:
方式一:先查出nginx进程id再使用kill命令强制杀掉进程。
cd /usr/local/nginx/sbin./nginx -s stop方式二(推荐):待nginx进程处理任务完毕进行停止。
cd /usr/local/nginx/sbin./nginx -s quit
以上就是本文的全部内容,希望对大家的学习有所帮助
⑶ 基于 Docker 安装 Nginx,启动运行,外网访问,映射配置文件
基于 Docker 安装 Nginx
查找Nginx镜像
语法:docker search nginx
示例:
获取Nginx镜像
示例:
启动nginx容器实例
说明:--name nginx nginx 第一个nginx是通过--name指定的nginx容器实例的名称,另一个nginx表示nginx仓库的名称。
查看nginx容器实例的进程信息
通过ps -ef | grep nginx查看
进入nginx容器内
杀死nginx容器实例
停止nginx实例
启动nginx容器实例
重启nginx容器实例
移除nginx容器实例
案例
暴露外部端口
基于docker run -d --name nginx nginx方法启动nginx后,Docker 容器并没有对外暴露访问的端口,即无法通过当前主机外部浏览器器访问nginx。那么该怎么样呢?
语法:
-p 80:80:通过-p来指定Docker容器中nginx实例对外开放的端口。本例中,第一个80端口是对外开放的端口,第二个80端口指对外开放的端口映射到容器里的端口号。
示例:
通过当前主机外的浏览器访问nginx,如下图:
指定外部的配置文件
语法:
说明:
-v: 表示挂载一个本机目录或文件到容器里。
-v /develop/nginx/nginx.conf:/etc/nginx/nginx.conf:将/develop/nginx/nginx.conf配置文件挂载到容器中/etc/nginx/nginx.conf这个配置文件中。
-v /develop:/develop:将/develop这个目录挂载到容器里的/develop这个目录里。
示例:
注意事项:指定外部配置文件,同时需要指定nginx的首页面,否则会抛出404错误,原因就是因为nginx找不到配置文件中默认的index页面。
本例中,使用/develop/apps/static/index.html替代了容器里的nginx默认的index页面,同时,-v /develop:/develop挂载根目录即可访问子目录。
指定网络模式:--net=bridge 默认模式
其中8080是指主机的端口,而80是指容器的端口
我们先看一下端口的状态
docker是运行在Linux上的,在Windows中运行docker,实际上还是在Windows下先安装了一个Linux环境,然后在这个系统中运行的docker。也就是说,服务中使用的localhost指的是这个Linux环境的地址,而不是我们的宿主环境Windows。我们可以通过命令:
找到这个Linux的ip地址,一般情况下这个地址是192.168.99.100,然后在Windows的浏览器中,输入这个地址,加上服务的端口即可启用了。