买了一台腾讯云主机,配置了多个应该苦于每个应用使用不同的端口在输入域名后加上域名着实麻烦,在上网也没有搜索的明确的配置方法,在此写上一写。
- 案例:**
- 应用如下:
- 1.jenkis 使用前: xxxx.com:9099 使用后: jks.xxx.com
- 2.自带主页 使用前: xxx.com 使用后: xxx.com / www.xxx.com
- 应用如下:
方法如下:
1.添加 A定义 在域名解析里,此处的域名在国内的情况下需要备案。
2.进入腾讯云ECS
2.1安装并且配置NGINX在这里推荐用docker安装nginx,安装docker请移步 链接:安装docker
2.2 安装Nginx
1.拉取nginx镜像,查看镜像,运行镜像,查看运行的容器
docker pull nginx:latest
docker images
docker run --name nginx_justrun -d nginx
docker ps
2.查看当前运行容器的配置文件,
docker exec nginx_justrun ls /etc/nginx
复制当前容器的配置文件,这里的/app/nginx_justrun 可以自己指定目录,如果报错说目录不存在,请创建目录先
docker cp -a nginx_justrun:/etc/nginx/ /app/nginx_justrun
强制删除当前运行nginx容器
docker rm -f nginx_justrun
3.配置nginx容器的文件
在如下文件:nginx.conf添加serve如下:
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/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 /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 500;
#gzip on;
#include /etc/nginx/conf.d/*.conf;
server {
listen 80;
server_name xxx.com;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://ip:8080;
}
}
server {
listen 80;
server_name jks.xxx.com;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://ip:9099;
}
}
}
倒数第二个黑色块贴到对应的地方
此处的ip是腾讯云外网ip
4.运行真正的Nginx容器 nginx_run 可以自己指定
docker run -p 80:80 --restart always --name nginx_run -v /app/nginx_justrun/:/etc/nginx/ -d nginx
此处有个坑打起来的容器必须如下图,特别是红色圈出来的部分必须要有(请忽略此处的容器名字和上文写的名字对不起来)
红色框中的部分如果没有的话请用下面的语句查询原因
docker logs 容器id/容器名字
此处用80端口的目的是用nginx来控制进入
5.记住每次修改nginx配置后请重新启动nginx容器
docker restart 容器id